mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-08-29 04:26:38 +00:00
docs(i18n): point tutorial entries at index pages
This commit is contained in:
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/user/develop/basic/config.md
|
||||
config.md: 21ba39fd7de1795e9139aff3e2b11743eedd4833
|
||||
config.md: d935fc3f3b5b42c5b3fbd8d3b0d398a2608aead3
|
||||
config.zh.md: 642a413950e2d8deb8591bc688968607604c050d
|
||||
|
||||
@@ -102,5 +102,5 @@ A configuration edit hot-replaces the plugin: the framework unloads the old inst
|
||||
## Next steps
|
||||
|
||||
- [Package and install a plugin](./publish.md) — ship the plugin as an installable package
|
||||
- [Plugins and lifecycle](../framework/) — understand the full plugin lifecycle
|
||||
- [Plugins and lifecycle](../framework/index.md) — understand the full plugin lifecycle
|
||||
- [Services and dependencies](../framework/service.md) — provide a service to other plugins
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/user/develop/basic/publish.md
|
||||
publish.md: 9548fe2f8e4636dd160c79cd0d50f01f8bdfd3d1
|
||||
publish.md: 17f83e5448d5cfc65cd128c3fe1abbaa88925f77
|
||||
publish.zh.md: 00b8885d6cbd39fa9899e110b1d31ef96175e127
|
||||
|
||||
@@ -179,5 +179,5 @@ If you would rather not ask users for the allowance, distribute built artifacts
|
||||
|
||||
## Next steps
|
||||
|
||||
- [Plugins and lifecycle](../framework/) — the full plugin lifecycle
|
||||
- [Plugins and lifecycle](../framework/index.md) — the full plugin lifecycle
|
||||
- [CLI behavior reference](../../../../apps/cli/reference/README.md) — exact layer precedence, flags, and profile mechanics
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/user/develop/basic/tool.md
|
||||
tool.md: eb262d131a7f2b540827e86e56f8c0a28cb5f904
|
||||
tool.md: 24a82d277e626ba78760a0afb1c41e2a157eb8ee
|
||||
tool.zh.md: a07bef588f5a18093cf2eb1971b855bf40d1d0b6
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
English | [中文](tool.zh.md)
|
||||
|
||||
This tutorial adds a `greet` tool to the Web UI. Complete [Your first plugin](./) first and keep its `scratch-plugin` directory.
|
||||
This tutorial adds a `greet` tool to the Web UI. Complete [Your first plugin](./index.md) first and keep its `scratch-plugin` directory.
|
||||
|
||||
## Create the tool plugin
|
||||
|
||||
@@ -49,4 +49,4 @@ Open `http://127.0.0.1:3080` and ask: `Use the greet tool to greet Ada.` The mod
|
||||
|
||||
- [Plugin configuration](./config.md) — make the greeting configurable.
|
||||
- [Tool authoring reference](../../../cookbook/adding-a-tool.md) — look up nested schemas, canonical values, background work, policy hooks, Code Mode, and UI cards.
|
||||
- [Capability layering](../practice/) — split a replaceable capability into Service Definition, Service Provider, and Consumer packages.
|
||||
- [Capability layering](../practice/index.md) — split a replaceable capability into Service Definition, Service Provider, and Consumer packages.
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/user/develop/framework/events.md
|
||||
events.md: 1d9fe5c8f5068de6ad8b2abaa85cf67be35c8459
|
||||
events.md: 17ce5f6c4a70e406b5e3d9e5dd26182f62dc9868
|
||||
events.zh.md: 6936a5ad6c51393d2fbcd5103d4e418ce010d569
|
||||
|
||||
@@ -139,5 +139,5 @@ export function apply(ctx: Context) {
|
||||
|
||||
## Next steps
|
||||
|
||||
- [Capability layering](../practice/) — understand events within capability interfaces
|
||||
- [Capability layering](../practice/index.md) — understand events within capability interfaces
|
||||
- [LLM adapters](../practice/llm-adapter.md) — implement a complete LLM backend
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/user/develop/framework/service.md
|
||||
service.md: 03f4e7dc4df934495a4b203066183753b621339e
|
||||
service.md: 1bcfe2e7690d9f93b871500660e0fbe1e3439b3f
|
||||
service.zh.md: b275c3d200fb50b1fab0e762d0154477c7ca4447
|
||||
|
||||
@@ -145,4 +145,4 @@ The repository generates the service names, public methods, and source locations
|
||||
## Next steps
|
||||
|
||||
- [Event system](./events.md) — communicate between plugins without tight coupling
|
||||
- [Capability layering](../practice/) — use services as capability interfaces
|
||||
- [Capability layering](../practice/index.md) — use services as capability interfaces
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/user/develop/practice/index.md
|
||||
index.md: cc6bd7a234305f6fa193341f15354b40855f72e9
|
||||
index.md: f7e10e14b78da0b2eb922ca0cafd3151d412efd1
|
||||
index.zh.md: 55ed3d3a93008f63a3e677de935c1de4be8872e5
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
English | [中文](index.zh.md)
|
||||
|
||||
This page has two parts: a concept reference for the three-role capability pattern, followed by an advanced tutorial that builds one capability. Complete the [basic plugin path](../basic/) and [services tutorial](../framework/service.md) first.
|
||||
This page has two parts: a concept reference for the three-role capability pattern, followed by an advanced tutorial that builds one capability. Complete the [basic plugin path](../basic/index.md) and [services tutorial](../framework/service.md) first.
|
||||
|
||||
## Concept reference
|
||||
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
# side as of the last confirmed-consistent state. Both languages carry equal authority;
|
||||
# after editing either side, bring the other along and re-record with:
|
||||
# pnpm run verify-translation-pairing --write docs/user/guide/index.md
|
||||
index.md: 2ae8847e3e04e131517e505bbc3c5f2c1047a45c
|
||||
index.md: fb97f8cec837ecebc427f94ea5210b940d6fee75
|
||||
index.zh.md: 6cbfce0b884aee39d26797d38c78b33e05b71c63
|
||||
|
||||
@@ -27,4 +27,4 @@ The agent can read and edit workspace files, run commands, delegate work, and ma
|
||||
- [Configure models](./providers.md)
|
||||
- [Use the Python SDK](./python-sdk.md)
|
||||
- [Use other CLI modes](../../../apps/cli/README.md)
|
||||
- [Develop a plugin](../develop/basic/)
|
||||
- [Develop a plugin](../develop/basic/index.md)
|
||||
|
||||
@@ -310,6 +310,37 @@ describe('docsPages locale routes', () => {
|
||||
}
|
||||
})
|
||||
|
||||
it('projects the audited tutorial entry links from explicit locale index pages', () => {
|
||||
const entries = [
|
||||
['docs/user/develop/basic/config.md', '../framework/index.md'],
|
||||
['docs/user/develop/basic/publish.md', '../framework/index.md'],
|
||||
['docs/user/develop/basic/tool.md', './index.md'],
|
||||
['docs/user/develop/basic/tool.md', '../practice/index.md'],
|
||||
['docs/user/develop/framework/events.md', '../practice/index.md'],
|
||||
['docs/user/develop/framework/service.md', '../practice/index.md'],
|
||||
['docs/user/develop/practice/index.md', '../basic/index.md'],
|
||||
['docs/user/guide/index.md', '../develop/basic/index.md'],
|
||||
] as const
|
||||
|
||||
for (const [englishSource, englishTarget] of entries) {
|
||||
for (const locale of ['en', 'root'] as const) {
|
||||
const source = locale === 'root' ? englishSource.replace(/\.md$/, '.zh.md') : englishSource
|
||||
const target = locale === 'root' ? englishTarget.replace(/\.md$/, '.zh.md') : englishTarget
|
||||
const page = docsPages.find(candidate => candidate.locale === locale && candidate.source === source)
|
||||
expect(page, `${locale}:${source}`).toBeDefined()
|
||||
expect(readFileSync(resolve(repositoryRoot, source), 'utf8')).toContain(`](${target})`)
|
||||
expect(rewriteMarkdown(`[Entry](${target})\n`, {
|
||||
locale,
|
||||
sourcePath: source,
|
||||
route: page!.route,
|
||||
pages: docsPages,
|
||||
repoRoot: repositoryRoot,
|
||||
repositoryRef: 'abc123',
|
||||
})).toBe(`[Entry](${englishTarget})\n`)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
it('indexes every subsystem page in both sides of the folder README', () => {
|
||||
const pages = globSync(join(repositoryRoot, 'docs/subsystems/*.md'))
|
||||
.map(page => basename(page))
|
||||
|
||||
Reference in New Issue
Block a user