@sagmans/dsh-tui 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/dsh-tui-dogfood/SKILL.md +6 -1
- package/.agents/skills/dsh-tui-update-models/references/model-wiring.md +2 -2
- package/README.md +23 -16
- package/cordis.patch.yml +23 -100
- package/lib/agent/presets.d.ts.map +1 -1
- package/lib/agent/presets.js +8 -3
- package/lib/agent/presets.js.map +1 -1
- package/lib/compat/probe.js +1 -1
- package/lib/compat/probe.js.map +1 -1
- package/lib/compat/section.d.ts +8 -1
- package/lib/compat/section.d.ts.map +1 -1
- package/lib/compat/section.js +3 -2
- package/lib/compat/section.js.map +1 -1
- package/lib/host/preset-files.d.ts +27 -0
- package/lib/host/preset-files.d.ts.map +1 -0
- package/lib/host/preset-files.js +40 -0
- package/lib/host/preset-files.js.map +1 -0
- package/lib/host/roster.d.ts +17 -0
- package/lib/host/roster.d.ts.map +1 -0
- package/lib/host/roster.js +42 -0
- package/lib/host/roster.js.map +1 -0
- package/lib/host/runner.d.ts +15 -0
- package/lib/host/runner.d.ts.map +1 -0
- package/lib/host/runner.js +17 -0
- package/lib/host/runner.js.map +1 -0
- package/lib/index.d.ts +4 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -2
- package/lib/index.js.map +1 -1
- package/lib/surface/appearance-preferences.d.ts.map +1 -1
- package/lib/surface/appearance-preferences.js +3 -2
- package/lib/surface/appearance-preferences.js.map +1 -1
- package/lib/surface/preset-choice.d.ts.map +1 -1
- package/lib/surface/preset-choice.js +38 -2
- package/lib/surface/preset-choice.js.map +1 -1
- package/lib/todo-guard.d.ts +17 -0
- package/lib/todo-guard.d.ts.map +1 -1
- package/lib/todo-guard.js +3 -1
- package/lib/todo-guard.js.map +1 -1
- package/lib/transcript/tool-calls.d.ts.map +1 -1
- package/lib/transcript/tool-calls.js +16 -2
- package/lib/transcript/tool-calls.js.map +1 -1
- package/package.json +40 -29
- package/presets/cordis.patch.yml +14 -0
- package/presets/minimal.patch.yml +14 -0
- package/presets/ptc.patch.yml +24 -0
- package/presets/standard.patch.yml +14 -0
- package/themes/marine-static.yaml +201 -0
- package/themes/pine-slope.yaml +203 -0
- package/themes/wine-thicket.yaml +205 -0
|
@@ -24,7 +24,7 @@ the bundle once if absent from the cloned profile, updates only its dependency,
|
|
|
24
24
|
restores local links from `link:` specifications, and launches
|
|
25
25
|
`dsh --profile tui` by default. For this TUI, the packaged helper checks
|
|
26
26
|
the launcher against compatible releases in the checkout’s `package.json` before
|
|
27
|
-
cloning. This checkout uses installed `dsh 0.
|
|
27
|
+
cloning. This checkout uses the installed `dsh 0.2.0-rc.2` line for PTY tests. Never
|
|
28
28
|
substitute `pnpm dsh` or a `--dsh` path from a Harness source checkout: that
|
|
29
29
|
host may migrate the cloned `settings.yaml`. The legacy
|
|
30
30
|
`scripts/dogfood/run-tui-from-worktree.sh` remains available in dsh-tui and
|
|
@@ -63,6 +63,11 @@ state through a package link.
|
|
|
63
63
|
The old dsh-tui entry point still requires a prelisted bundle. Do not use
|
|
64
64
|
`dsh plugin add` on a cloned profile with other bundles; it can drop them.
|
|
65
65
|
|
|
66
|
+
Use the active model in current session for dogfooding: pass `--model` and
|
|
67
|
+
`--provider` through to the run, because a fixed route either has no credit and
|
|
68
|
+
stops at `error: Insufficient Balance` after the surface is ready, or bills work
|
|
69
|
+
only the plugin under test needed.
|
|
70
|
+
|
|
66
71
|
Use `--status` to verify the existing bundles and the checkout `link:`
|
|
67
72
|
dependency. In dsh-tui, drive a cloned profile with:
|
|
68
73
|
|
|
@@ -188,8 +188,8 @@ host ignores its `reasoningEffort`, so effort is chosen in the surface.
|
|
|
188
188
|
`saveSelection(next)` validates first, then writes through the host's
|
|
189
189
|
`configEditor.edit(entry, updater)` so only `catalog.default` changes and
|
|
190
190
|
membership is re-checked inside the editor's lock. A host with no addressable
|
|
191
|
-
entry or no such editor rejects with `CONFIG_PERSISTENCE_UNAVAILABLE` -
|
|
192
|
-
|
|
191
|
+
entry or no such editor rejects with `CONFIG_PERSISTENCE_UNAVAILABLE` - a host older
|
|
192
|
+
than the supported line does - and nothing falls back to legacy
|
|
193
193
|
`agent-default-model` settings. Edit the profile patch there.
|
|
194
194
|
|
|
195
195
|
`compileCatalog(config)` and `buildCatalogProfile(provider)` are public: the
|
package/README.md
CHANGED
|
@@ -108,7 +108,7 @@ The profile then keeps `@deepseek-ai/dsh-base` and no application, so `dsh --pro
|
|
|
108
108
|
|
|
109
109
|
### Use the installed Harness launcher
|
|
110
110
|
|
|
111
|
-
Run `dsh --version` and confirm
|
|
111
|
+
Run `dsh --version` and confirm the release is inside the supported window (`>=0.2.0-rc.2 <0.3.0`) before launching this plugin. `pnpm dsh` from a Harness source checkout runs its development host, not the installed release. That host can migrate `settings.yaml` and is outside this plugin's supported range; do not use it for TUI dogfooding.
|
|
112
112
|
|
|
113
113
|
## Troubleshooting
|
|
114
114
|
|
|
@@ -127,7 +127,7 @@ Two facts explain most failures.
|
|
|
127
127
|
| `dsh-tui: both stdin and stdout must be TTYs` | stdin or stdout is a pipe, a file, or a CI runner | run the command from a terminal |
|
|
128
128
|
| Node warnings, such as `ExperimentalWarning: stripTypeScriptTypes …`, appear after exit | the TUI holds runtime warnings until it returns the terminal to your shell; startup warnings remain visible before the TUI starts | read the warnings in your shell after exit; no warning-suppression flag is needed |
|
|
129
129
|
| Changes under `src/` have no effect | a linked profile loads `lib/`, not `src/` | `pnpm run build` in the plugin checkout |
|
|
130
|
-
| TUI preferences disappear after launching a Harness source checkout | that host treats `settings.yaml` as migration input, not live preferences | use installed
|
|
130
|
+
| TUI preferences disappear after launching a Harness source checkout | that host treats `settings.yaml` as migration input, not live preferences | use an installed release inside the supported window with a cloned home; preserve the original settings file |
|
|
131
131
|
| `--preset <id>` is refused, because the session's agent preset is fixed | a session keeps the mode that composed it, and this session already took a turn | `/preset <id>` before the first turn, or resume without `--preset` |
|
|
132
132
|
| `--resume <id>` starts a new session | the id is a bare UUID | pass the stored id, `tui-session-…` included; a bare `--resume` opens the picker |
|
|
133
133
|
| `dsh: profile "tui" does not exist` | the profile is not created yet | the `add` command creates it |
|
|
@@ -559,12 +559,17 @@ leaving a gap, and `NO_COLOR` draws the fence as plain text. `/export` and the
|
|
|
559
559
|
session file still keep the fence exactly as the model wrote it.
|
|
560
560
|
|
|
561
561
|
A theme restyles the whole surface by name, and a theme is a file. The package
|
|
562
|
-
ships
|
|
562
|
+
ships six: `violet-orbit`, a port of pi's theme of that name — its palette,
|
|
563
563
|
plus the elements it draws its own way — `deepseek-blue`, the table written out
|
|
564
|
-
in full in the colours the project answers to,
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
564
|
+
in full in the colours the project answers to, `polar-drift`, that table anchored
|
|
565
|
+
on the cyan `#27CFF5`, `pine-slope`, the same table around the pine `#173802`,
|
|
566
|
+
`wine-thicket`, the same table around the plum `#240413`, and `marine-static`,
|
|
567
|
+
the same table around the deep teal `#041F21`. The pine, the plum, and the teal
|
|
568
|
+
are dark enough that they mark the band under a selected row by hue alone, while
|
|
569
|
+
the accent is lifted out of their own hue to where text reads. Each of them tints
|
|
570
|
+
its neutrals through that hue, holds the same relative ladder of shades, and
|
|
571
|
+
leaves the semantic shades where a reader already reads them. `violet-orbit` is
|
|
572
|
+
also what a
|
|
568
573
|
document naming no theme draws, so the default look is a file you can read, list,
|
|
569
574
|
and copy rather than a table compiled in. Your own themes live in
|
|
570
575
|
`$DSH_HOME/themes/`, which the surface creates at start-up and watches, so saving
|
|
@@ -724,16 +729,18 @@ alone.
|
|
|
724
729
|
|
|
725
730
|
## Modes
|
|
726
731
|
|
|
727
|
-
A mode is an **agent preset**: the
|
|
732
|
+
A mode is an **agent preset**: the seat an agent's own scope takes in this profile's roster. The rows that make up that agent — its tools, prompt sections, skills, and planning — belong to the bundle shipping each of them, and the profile's own layers compose them, so a mode names a composition rather than assembling one. A mode is fixed once a session has produced a turn, because the log records the seat the agent that answered ran in.
|
|
728
733
|
|
|
729
734
|
Four ship, under the ids a session log records:
|
|
730
735
|
|
|
731
|
-
| `--preset` | Mode | What the
|
|
736
|
+
| `--preset` | Mode | What this bundle makes of the id |
|
|
732
737
|
|---|---|---|
|
|
733
|
-
| `ptc` | PTC (default) | the
|
|
734
|
-
| `standard` | standard |
|
|
735
|
-
| `minimal` | minimal |
|
|
736
|
-
| `cordis` | creator |
|
|
738
|
+
| `ptc` | PTC (default) | the agent this profile composes, with its tools reached through one TypeScript program |
|
|
739
|
+
| `standard` | standard | the same agent, its tools called directly |
|
|
740
|
+
| `minimal` | minimal | the same agent, as this profile composes it |
|
|
741
|
+
| `cordis` | creator | the same agent, for authoring the composition itself |
|
|
742
|
+
|
|
743
|
+
Only PTC declares anything of its own: the presentation its tools take. The other three ids are the harness's own mode names, kept so a session log reads the same here as in the browser profile, and what each of them runs is the profile's composition — a profile that wants a smaller `minimal` declares that composition in its own layers.
|
|
737
744
|
|
|
738
745
|
A session takes its mode from the first of these that applies:
|
|
739
746
|
|
|
@@ -748,8 +755,8 @@ The mode is re-read rather than remembered: resuming mounts what that session's
|
|
|
748
755
|
The package is a Cordis plugin bundle that stacks over `@deepseek-ai/dsh-base`:
|
|
749
756
|
|
|
750
757
|
- `@sagmans/dsh-tui/startup` parses this app's own flags and publishes the launch identity.
|
|
751
|
-
- `@deepseek-ai/dsh-agent-
|
|
752
|
-
- `@deepseek-ai/dsh-
|
|
758
|
+
- The roster of modes holds the id a session starts in when nobody names one: `@deepseek-ai/dsh-agent-preset-registry` owns that service on the supported line, and each mode arrives as a row of `@deepseek-ai/dsh-agent-preset`, so this bundle declares the four modes itself. Both are mounted through this bundle's own `host/roster` entry point, because a patch row is applied before any service exists and the registry and the modes arrive with the harness's own agent services — after the surface that needs the roster. A mode names a selection rather than a composition: the plugins an agent runs on belong to the bundle shipping each of them, and the profile's own layers compose them, so a mode here declares no plugin row and the patch disables none. The one row a mode does own is its presentation: `ptc` mounts `@deepseek-ai/dsh-agent-tool-presentation` with `mode: ptc`, because the form an agent's tools take is declared per agent — a session's own row cannot say it, and a mode without the row presents natively whatever its id says.
|
|
759
|
+
- `@deepseek-ai/dsh-cordis-host-runner` is the host machinery creator mode needs, and the base mounts no such row, so a terminal profile mounts it through this bundle's own `host/runner` entry point. The code runtime PTC mode runs programs against is a base row of its own (`ptc-runtime`) on the supported line, so this bundle mounts none of its own. Both packages are plain dependencies: a profile resolves exactly one copy of each, and the harness reads its runtime version off the runner it mounts.
|
|
753
760
|
- `@sagmans/dsh-tui` owns the terminal: it creates or resumes one agent through `ctx.agents`, folds `session/event` into transcript rows and work state, renders them with `@earendil-works/pi-tui`, and releases the terminal on exit, on a boot failure, and on a signal.
|
|
754
761
|
- `@sagmans/dsh-tui/todo-guard` is the one advisory row this bundle adds to the agent plane: it watches the harness's own `todos` and `plan` projections and rides the next tool result with a reminder when a plan ages. See [Todo discipline](#todo-discipline).
|
|
755
762
|
|
|
@@ -835,7 +842,7 @@ pnpm test
|
|
|
835
842
|
pnpm run build
|
|
836
843
|
```
|
|
837
844
|
|
|
838
|
-
**A linked profile loads the built entry point**, so edits under `src/` are invisible to `dsh --profile tui` until `pnpm run build` runs. The PTY driver rebuilds, checks nested links in the isolated `--home`, and rejects
|
|
845
|
+
**A linked profile loads the built entry point**, so edits under `src/` are invisible to `dsh --profile tui` until `pnpm run build` runs. The PTY driver rebuilds, checks nested links in the isolated `--home`, and rejects a launcher whose version `dsh.compatibility.dshReleases` does not list.
|
|
839
846
|
|
|
840
847
|
Clone your configured home with the dogfood helper for realistic runs. A minimal throwaway home can also expose startup failures without touching your real state:
|
|
841
848
|
|
package/cordis.patch.yml
CHANGED
|
@@ -1,86 +1,30 @@
|
|
|
1
1
|
# dsh-tui — the terminal agent plane, over dsh-base.
|
|
2
2
|
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
# The
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
|
|
15
|
-
disabled: true
|
|
16
|
-
|
|
17
|
-
- id: command-compact
|
|
18
|
-
disabled: true
|
|
19
|
-
|
|
20
|
-
- id: command-goal
|
|
21
|
-
disabled: true
|
|
22
|
-
|
|
23
|
-
- id: compaction-basic
|
|
24
|
-
disabled: true
|
|
25
|
-
|
|
26
|
-
- id: plan-mode
|
|
27
|
-
disabled: true
|
|
28
|
-
|
|
29
|
-
- id: skill-filesystem
|
|
30
|
-
disabled: true
|
|
31
|
-
|
|
32
|
-
- id: tool-bash
|
|
33
|
-
disabled: true
|
|
34
|
-
|
|
35
|
-
- id: tool-fs
|
|
36
|
-
disabled: true
|
|
37
|
-
|
|
38
|
-
- id: tool-fs-search
|
|
39
|
-
disabled: true
|
|
40
|
-
|
|
41
|
-
- id: tool-goal
|
|
42
|
-
disabled: true
|
|
43
|
-
|
|
44
|
-
- id: tool-jobs
|
|
45
|
-
disabled: true
|
|
46
|
-
|
|
47
|
-
- id: tool-pwsh
|
|
48
|
-
disabled: true
|
|
49
|
-
|
|
50
|
-
- id: tool-ralph
|
|
51
|
-
disabled: true
|
|
52
|
-
|
|
53
|
-
- id: tool-result-pruner
|
|
54
|
-
disabled: true
|
|
55
|
-
|
|
56
|
-
- id: tool-skill
|
|
57
|
-
disabled: true
|
|
58
|
-
|
|
59
|
-
- id: tool-subagent
|
|
60
|
-
disabled: true
|
|
61
|
-
|
|
62
|
-
- id: tool-subagent-control
|
|
63
|
-
disabled: true
|
|
64
|
-
|
|
65
|
-
- id: tool-subagent-fork
|
|
66
|
-
disabled: true
|
|
67
|
-
|
|
68
|
-
- id: tool-subagent-list-agents
|
|
69
|
-
disabled: true
|
|
70
|
-
|
|
71
|
-
- id: tool-todo
|
|
72
|
-
disabled: true
|
|
73
|
-
|
|
74
|
-
- id: tool-web
|
|
75
|
-
disabled: true
|
|
3
|
+
# This layer inserts only rows that mount this plugin's own entry points, and it
|
|
4
|
+
# disables no base row. The agent plane itself — the tools, prompt sections,
|
|
5
|
+
# skills, commands, and planning rows a session runs on — belongs to the bundle
|
|
6
|
+
# that ships each of those plugins, and the profile's own bundle layers compose
|
|
7
|
+
# it. A row mounted from here would register what the profile already
|
|
8
|
+
# registered, which is the "already registered" wall this file used to produce
|
|
9
|
+
# once the profile's own layer supplied the same plugins.
|
|
10
|
+
- insert:
|
|
11
|
+
# The two rows below sit ahead of the surface on purpose: a row applies as
|
|
12
|
+
# soon as its own dependencies are up, the surface builds as soon as the
|
|
13
|
+
# harness's agent services are up, and the roster arrives only after settings
|
|
14
|
+
# — later than both.
|
|
76
15
|
|
|
77
|
-
|
|
78
|
-
|
|
16
|
+
# The roster of agent compositions, and the mode a session starts in when
|
|
17
|
+
# nobody names one. PTC leads because a flagless run should reach every tool
|
|
18
|
+
# through one program rather than one shell call at a time.
|
|
19
|
+
- id: agent-presets
|
|
20
|
+
name: '@sagmans/dsh-tui/host/roster'
|
|
79
21
|
|
|
80
|
-
-
|
|
81
|
-
|
|
22
|
+
# Creator mode inspects and re-composes the running harness, which needs the
|
|
23
|
+
# host half of the dynamic-plugin runner. Only the Web bundle ships this
|
|
24
|
+
# row, so a terminal profile has to mount it to offer that mode at all.
|
|
25
|
+
- id: cordis-host-runner
|
|
26
|
+
name: '@sagmans/dsh-tui/host/runner'
|
|
82
27
|
|
|
83
|
-
- insert:
|
|
84
28
|
- id: tui-startup
|
|
85
29
|
name: '@sagmans/dsh-tui/startup'
|
|
86
30
|
|
|
@@ -111,29 +55,8 @@
|
|
|
111
55
|
maxRemindersPerTurn: 3
|
|
112
56
|
previewItems: 5
|
|
113
57
|
|
|
114
|
-
# The roster of agent compositions, and the mode a session starts in when
|
|
115
|
-
# nobody names one. PTC leads because a flagless run should reach every tool
|
|
116
|
-
# through one program rather than one shell call at a time. A profile patch
|
|
117
|
-
# may override this row's config.
|
|
118
|
-
- id: agent-presets
|
|
119
|
-
name: '@deepseek-ai/dsh-agent-presets'
|
|
120
|
-
config:
|
|
121
|
-
default: ptc
|
|
122
|
-
|
|
123
58
|
# A preset's subagent tool samples its delegation model from this host-owned
|
|
124
59
|
# settings row. It is host machinery rather than agent plane, which is why
|
|
125
|
-
# the Web bundle inserts it too instead of leaving it to
|
|
60
|
+
# the Web bundle inserts it too instead of leaving it to a preset.
|
|
126
61
|
- id: subagent-model-selection-settings
|
|
127
62
|
name: '@deepseek-ai/dsh-tool-subagent/model-selection-settings'
|
|
128
|
-
|
|
129
|
-
# Creator mode inspects and re-composes the running harness, which needs the
|
|
130
|
-
# host half of the dynamic-plugin runner. Only the Web bundle ships this
|
|
131
|
-
# row, so a terminal profile has to mount it to offer that mode at all.
|
|
132
|
-
- id: cordis-host-runner
|
|
133
|
-
name: '@deepseek-ai/dsh-cordis-host-runner'
|
|
134
|
-
|
|
135
|
-
# PTC mode runs its programs against a code runtime. The Web bundle mounts
|
|
136
|
-
# this at host level for the same reason: the runtime is machinery, while
|
|
137
|
-
# the preset decides whether an agent uses it.
|
|
138
|
-
- id: code-runtime
|
|
139
|
-
name: '@deepseek-ai/dsh-code-runtime-worker-thread'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/agent/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD;;;;;;;;GAQG;AAEH,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAA;IACjC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED,wDAAwD;AACxD,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAGnE;
|
|
1
|
+
{"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/agent/presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAGhD;;;;;;;;GAQG;AAEH,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAA;IACjC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;AAED,wDAAwD;AACxD,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAGnE;AAqBD,4CAA4C;AAC5C,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAa9F;AAED,6DAA6D;AAC7D,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,IAAI,IAAI,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAA;IACzC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACvD;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnD,yEAAyE;IACzE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACnD,iEAAiE;IACjE,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;IAC7C;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAA;CACnC;AAED,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,gBAAgB,CAAA;AAwC7C;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,SAAS,CAwCzE"}
|
package/lib/agent/presets.js
CHANGED
|
@@ -15,12 +15,17 @@ export function parsePresetArgument(argument) {
|
|
|
15
15
|
* The Web app translates the same four ids from its own locale bundle; a
|
|
16
16
|
* terminal has no such bundle, so the copy lives here. A preset this table does
|
|
17
17
|
* not name is not ours to describe: it speaks for itself through its metadata.
|
|
18
|
+
*
|
|
19
|
+
* A gloss says what this bundle makes of an id, not what the harness's own
|
|
20
|
+
* bundles once composed for it: the agent plane belongs to the profile's own
|
|
21
|
+
* layers, so `standard`, `minimal`, and `cordis` are seats in one composition
|
|
22
|
+
* rather than three, and PTC is the one id whose tools are presented differently.
|
|
18
23
|
*/
|
|
19
24
|
const SHIPPED_GLOSS = {
|
|
20
|
-
standard: '
|
|
25
|
+
standard: 'the agent this profile composes, its tools called directly',
|
|
21
26
|
ptc: 'the same agent, with its tools reached through one TypeScript program',
|
|
22
|
-
minimal: '
|
|
23
|
-
cordis: '
|
|
27
|
+
minimal: 'the same agent, as this profile composes it',
|
|
28
|
+
cordis: 'the same agent, for authoring the composition itself',
|
|
24
29
|
};
|
|
25
30
|
/** How one preset appears in the picker. */
|
|
26
31
|
export function describePreset(preset, currentId) {
|
package/lib/agent/presets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/agent/presets.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AA4BrE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AAC9D,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"presets.js","sourceRoot":"","sources":["../../src/agent/presets.ts"],"names":[],"mappings":"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"}
|
package/lib/compat/probe.js
CHANGED
|
@@ -16,7 +16,7 @@ export const REQUIRED_CAPABILITIES = [
|
|
|
16
16
|
{
|
|
17
17
|
service: 'agentPresets',
|
|
18
18
|
use: 'choosing the composition an agent runs, which owns its tools and prompt',
|
|
19
|
-
fix: 'mount @deepseek-ai/dsh-agent-presets, which this bundle inserts',
|
|
19
|
+
fix: 'mount @deepseek-ai/dsh-agent-presets or @deepseek-ai/dsh-agent-preset-registry, which this bundle inserts for the host line',
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
service: 'appExit',
|
package/lib/compat/probe.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/compat/probe.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,mDAAmD;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC1D;QACE,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,sDAAsD;QAC3D,GAAG,EAAE,gEAAgE;KACtE;IACD;QACE,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE,yEAAyE;QAC9E,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/compat/probe.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,mDAAmD;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC1D;QACE,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,sDAAsD;QAC3D,GAAG,EAAE,gEAAgE;KACtE;IACD;QACE,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE,yEAAyE;QAC9E,GAAG,EAAE,6HAA6H;KACnI;IACD;QACE,OAAO,EAAE,SAAS;QAClB,GAAG,EAAE,8CAA8C;QACnD,GAAG,EAAE,2CAA2C;KACjD;CACF,CAAA;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC1D;QACE,OAAO,EAAE,OAAO;QAChB,GAAG,EAAE,yDAAyD;QAC9D,GAAG,EAAE,8BAA8B;KACpC;IACD;QACE,OAAO,EAAE,UAAU;QACnB,GAAG,EAAE,0CAA0C;QAC/C,GAAG,EAAE,iCAAiC;KACvC;IACD;QACE,OAAO,EAAE,oBAAoB;QAC7B,GAAG,EAAE,uCAAuC;QAC5C,GAAG,EAAE,kDAAkD;KACxD;IACD;QACE,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,wCAAwC;QAC7C,GAAG,EAAE,uCAAuC;KAC7C;IACD;QACE,OAAO,EAAE,UAAU;QACnB,GAAG,EAAE,qCAAqC;QAC1C,GAAG,EAAE,sCAAsC;KAC5C;CACF,CAAA;AAQD,qDAAqD;AACrD,MAAM,UAAU,gBAAgB,CAAC,GAAiC;IAChE,OAAO;QACL,eAAe,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrF,eAAe,EAAE,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACtF,CAAA;AACH,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CACpD,KAAK,UAAU,CAAC,OAAO,gBAAgB,UAAU,CAAC,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,CAAC,CAAA;IAC9E,OAAO,qEAAqE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAChG,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IACzD,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAC1E,OAAO,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,wDAAwD,CAAA;AACpG,CAAC"}
|
package/lib/compat/section.d.ts
CHANGED
|
@@ -5,7 +5,14 @@ export interface SectionScope {
|
|
|
5
5
|
readonly kind: 'installSection' | 'register' | 'config' | 'unsupported';
|
|
6
6
|
get(): unknown;
|
|
7
7
|
update(patch: object): Promise<void>;
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Raw opt-outs can precede a valid commit and therefore never reach get() or notifications.
|
|
10
|
+
*
|
|
11
|
+
* A row the document holds no section for reads as `undefined`, the same as a
|
|
12
|
+
* row whose section is empty: neither is an opt-out, and the switches a Config
|
|
13
|
+
* patch or the entry itself declares stand. Only a section the service cannot
|
|
14
|
+
* describe at all is unreadable, which is a refusal rather than an absence.
|
|
15
|
+
*/
|
|
9
16
|
readUser(): {
|
|
10
17
|
readonly value: unknown;
|
|
11
18
|
readonly revision: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section.d.ts","sourceRoot":"","sources":["../../src/compat/section.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAA;IACvE,GAAG,IAAI,OAAO,CAAA;IACd,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC
|
|
1
|
+
{"version":3,"file":"section.d.ts","sourceRoot":"","sources":["../../src/compat/section.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,oFAAoF;AACpF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,CAAA;IACvE,GAAG,IAAI,OAAO,CAAA;IACd,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC;;;;;;;OAOG;IACH,QAAQ,IAAI;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAC/E;AAyBD,iFAAiF;AACjF,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IACjB,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAA;CAC3G;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,YAAY,CAqEzF"}
|
package/lib/compat/section.js
CHANGED
|
@@ -9,9 +9,10 @@ export function openSection(service, request) {
|
|
|
9
9
|
if (typeof settings.describe !== 'function')
|
|
10
10
|
return undefined;
|
|
11
11
|
const descriptor = settings.describe().find(row => row.ns === ns);
|
|
12
|
-
if (descriptor === undefined
|
|
12
|
+
if (descriptor === undefined)
|
|
13
|
+
return undefined;
|
|
14
|
+
if (!Number.isSafeInteger(descriptor.revision) || descriptor.revision < 0)
|
|
13
15
|
throw new Error(READ_UNSUPPORTED);
|
|
14
|
-
}
|
|
15
16
|
return { value: descriptor.user, revision: descriptor.revision };
|
|
16
17
|
};
|
|
17
18
|
if (typeof settings.installSection === 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section.js","sourceRoot":"","sources":["../../src/compat/section.ts"],"names":[],"mappings":"AAGA,MAAM,gBAAgB,GAAG,wEAAwE,CAAA;AACjG,MAAM,iBAAiB,GAAG,0EAA0E,CAAA;AACpG,MAAM,eAAe,GAAG,mGAAmG,CAAA;
|
|
1
|
+
{"version":3,"file":"section.js","sourceRoot":"","sources":["../../src/compat/section.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { PresetDefinition } from '@deepseek-ai/dsh-agent-preset-registry';
|
|
2
|
+
/**
|
|
3
|
+
* The agent modes this bundle ships, read from the same files the harness's own
|
|
4
|
+
* bundles declare.
|
|
5
|
+
*
|
|
6
|
+
* A mode names a selection, not a composition: the rows that make up an agent's
|
|
7
|
+
* tools, prompt sections, skills, and planning belong to the bundle shipping
|
|
8
|
+
* each of them, so a mode that listed them would mount plugins this bundle does
|
|
9
|
+
* not own — a second registration of what the profile already composed. These
|
|
10
|
+
* files therefore carry the preset declaration alone.
|
|
11
|
+
*
|
|
12
|
+
* The harness keeps one row per mode, and each surface bundle owns its own rows:
|
|
13
|
+
* the browser bundle keeps them in its patch layer. A patch row here would be
|
|
14
|
+
* mounted before any service exists, so the files travel with this package and
|
|
15
|
+
* are parsed at the moment the roster row applies them to the hosting registry.
|
|
16
|
+
*/
|
|
17
|
+
/** Modes this bundle ships, in the order the picker lists them. */
|
|
18
|
+
export declare const PRESET_FILES: readonly ["standard", "ptc", "minimal", "cordis"];
|
|
19
|
+
/**
|
|
20
|
+
* Read every shipped mode.
|
|
21
|
+
*
|
|
22
|
+
* A parse failure is not swallowed: a mode that cannot be read would vanish from
|
|
23
|
+
* the roster without saying so, and a session that starts in it would fail with
|
|
24
|
+
* no cause on screen.
|
|
25
|
+
*/
|
|
26
|
+
export declare function loadPresetDefinitions(): readonly PresetDefinition[];
|
|
27
|
+
//# sourceMappingURL=preset-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preset-files.d.ts","sourceRoot":"","sources":["../../src/host/preset-files.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAG9E;;;;;;;;;;;;;;GAcG;AAEH,mEAAmE;AACnE,eAAO,MAAM,YAAY,mDAAoD,CAAA;AAK7E;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,SAAS,gBAAgB,EAAE,CAQnE"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { load as parseYaml } from 'js-yaml';
|
|
4
|
+
/**
|
|
5
|
+
* The agent modes this bundle ships, read from the same files the harness's own
|
|
6
|
+
* bundles declare.
|
|
7
|
+
*
|
|
8
|
+
* A mode names a selection, not a composition: the rows that make up an agent's
|
|
9
|
+
* tools, prompt sections, skills, and planning belong to the bundle shipping
|
|
10
|
+
* each of them, so a mode that listed them would mount plugins this bundle does
|
|
11
|
+
* not own — a second registration of what the profile already composed. These
|
|
12
|
+
* files therefore carry the preset declaration alone.
|
|
13
|
+
*
|
|
14
|
+
* The harness keeps one row per mode, and each surface bundle owns its own rows:
|
|
15
|
+
* the browser bundle keeps them in its patch layer. A patch row here would be
|
|
16
|
+
* mounted before any service exists, so the files travel with this package and
|
|
17
|
+
* are parsed at the moment the roster row applies them to the hosting registry.
|
|
18
|
+
*/
|
|
19
|
+
/** Modes this bundle ships, in the order the picker lists them. */
|
|
20
|
+
export const PRESET_FILES = ['standard', 'ptc', 'minimal', 'cordis'];
|
|
21
|
+
/** Where a packed install keeps them: beside `lib`, as the manifest declares. */
|
|
22
|
+
const presetDirectory = new URL('../../presets/', import.meta.url);
|
|
23
|
+
/**
|
|
24
|
+
* Read every shipped mode.
|
|
25
|
+
*
|
|
26
|
+
* A parse failure is not swallowed: a mode that cannot be read would vanish from
|
|
27
|
+
* the roster without saying so, and a session that starts in it would fail with
|
|
28
|
+
* no cause on screen.
|
|
29
|
+
*/
|
|
30
|
+
export function loadPresetDefinitions() {
|
|
31
|
+
return PRESET_FILES.map((mode) => {
|
|
32
|
+
const file = fileURLToPath(new URL(`${mode}.patch.yml`, presetDirectory));
|
|
33
|
+
const document = parseYaml(readFileSync(file, 'utf8'));
|
|
34
|
+
const rows = document.flatMap((entry) => entry?.insert ?? []);
|
|
35
|
+
if (rows.length !== 1)
|
|
36
|
+
throw new Error(`${file}: expected one preset row, found ${rows.length}`);
|
|
37
|
+
return rows[0]?.config;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=preset-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preset-files.js","sourceRoot":"","sources":["../../src/host/preset-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,SAAS,CAAA;AAE3C;;;;;;;;;;;;;;GAcG;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAA;AAE7E,iFAAiF;AACjF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAElE;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,YAAY,EAAE,eAAe,CAAC,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAA4D,CAAA;QACjH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAA;QAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oCAAoC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAChG,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,MAA0B,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
/**
|
|
3
|
+
* The roster of agent modes, mounted for the supported harness line.
|
|
4
|
+
*
|
|
5
|
+
* This bundle owns the modes a terminal profile offers, and the line keeps them in
|
|
6
|
+
* two places: a registry row owns the `agentPresets` service, and one row per mode
|
|
7
|
+
* declares the mode itself. The patch layer cannot mount either of them: a patch
|
|
8
|
+
* row is mounted before any service exists, and the modes arrive as the harness's
|
|
9
|
+
* own agent services come up, so the surface that waits on the roster would be
|
|
10
|
+
* built before it. Mounting from this row keeps the surface's check honest — the
|
|
11
|
+
* composition either publishes the roster or reports which service never arrived.
|
|
12
|
+
*/
|
|
13
|
+
export declare const name = "tui-host-roster";
|
|
14
|
+
/** The mode a session runs when nobody names one, as the shipped modes order them. */
|
|
15
|
+
export declare const DEFAULT_PRESET = "ptc";
|
|
16
|
+
export declare function apply(ctx: Context): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=roster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roster.d.ts","sourceRoot":"","sources":["../../src/host/roster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,IAAI,oBAAoB,CAAA;AAErC,sFAAsF;AACtF,eAAO,MAAM,cAAc,QAAQ,CAAA;AAiBnC,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvD"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { loadPresetDefinitions } from "./preset-files.js";
|
|
2
|
+
/**
|
|
3
|
+
* The roster of agent modes, mounted for the supported harness line.
|
|
4
|
+
*
|
|
5
|
+
* This bundle owns the modes a terminal profile offers, and the line keeps them in
|
|
6
|
+
* two places: a registry row owns the `agentPresets` service, and one row per mode
|
|
7
|
+
* declares the mode itself. The patch layer cannot mount either of them: a patch
|
|
8
|
+
* row is mounted before any service exists, and the modes arrive as the harness's
|
|
9
|
+
* own agent services come up, so the surface that waits on the roster would be
|
|
10
|
+
* built before it. Mounting from this row keeps the surface's check honest — the
|
|
11
|
+
* composition either publishes the roster or reports which service never arrived.
|
|
12
|
+
*/
|
|
13
|
+
export const name = 'tui-host-roster';
|
|
14
|
+
/** The mode a session runs when nobody names one, as the shipped modes order them. */
|
|
15
|
+
export const DEFAULT_PRESET = 'ptc';
|
|
16
|
+
/**
|
|
17
|
+
* Wait until a roster is really published.
|
|
18
|
+
*
|
|
19
|
+
* The registry row provides its service from its own asynchronous apply, and the
|
|
20
|
+
* surface is built as soon as the harness's agent services are up. Waiting here
|
|
21
|
+
* rather than letting the surface tolerate a roster that is not up yet is what
|
|
22
|
+
* keeps the surface's own capability check from mistaking a missing roster for a
|
|
23
|
+
* host that never offered one.
|
|
24
|
+
*/
|
|
25
|
+
function whenRosterIsUp(ctx) {
|
|
26
|
+
return new Promise((resolve) => {
|
|
27
|
+
ctx.inject(['agentPresets'], () => resolve());
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export async function apply(ctx) {
|
|
31
|
+
const { default: registry } = await import('@deepseek-ai/dsh-agent-preset-registry');
|
|
32
|
+
// The registry takes the fallback mode as its own config field and publishes its
|
|
33
|
+
// service without the schema step a partial row config would need.
|
|
34
|
+
ctx.plugin(registry, { default: DEFAULT_PRESET });
|
|
35
|
+
const { default: preset } = await import('@deepseek-ai/dsh-agent-preset');
|
|
36
|
+
// A mode registers itself inside its own row's apply: awaiting them here is what
|
|
37
|
+
// makes this row mean "the roster this profile offers" rather than "the rows it
|
|
38
|
+
// asked for", for every reader that comes after it.
|
|
39
|
+
await Promise.all(loadPresetDefinitions().map(definition => ctx.plugin(preset, definition)));
|
|
40
|
+
await whenRosterIsUp(ctx);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=roster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roster.js","sourceRoot":"","sources":["../../src/host/roster.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEzD;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AAErC,sFAAsF;AACtF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAA;AAEnC;;;;;;;;GAQG;AACH,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,GAAG,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAY;IACtC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAA;IACpF,iFAAiF;IACjF,mEAAmE;IACnE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;IACjD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;IACzE,iFAAiF;IACjF,gFAAgF;IAChF,oDAAoD;IACpD,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5F,MAAM,cAAc,CAAC,GAAG,CAAC,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
2
|
+
/**
|
|
3
|
+
* The dynamic-plugin runner, which is what lets a session compose plugins at run
|
|
4
|
+
* time — the machinery behind creator mode.
|
|
5
|
+
*
|
|
6
|
+
* Only the Web bundle ships this row, so a terminal profile has to mount it to
|
|
7
|
+
* offer that mode at all. The dependency is plain rather than an alias of its own
|
|
8
|
+
* line: the runner is what reports the hosting runtime version to every row it
|
|
9
|
+
* mounts, so a second copy of the package in a profile — which a per-line alias
|
|
10
|
+
* exists to create — is what makes a host read itself as another release and
|
|
11
|
+
* disable its own rows as incompatible.
|
|
12
|
+
*/
|
|
13
|
+
export declare const name = "tui-host-runner";
|
|
14
|
+
export declare function apply(ctx: Context): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,IAAI,oBAAoB,CAAA;AAErC,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dynamic-plugin runner, which is what lets a session compose plugins at run
|
|
3
|
+
* time — the machinery behind creator mode.
|
|
4
|
+
*
|
|
5
|
+
* Only the Web bundle ships this row, so a terminal profile has to mount it to
|
|
6
|
+
* offer that mode at all. The dependency is plain rather than an alias of its own
|
|
7
|
+
* line: the runner is what reports the hosting runtime version to every row it
|
|
8
|
+
* mounts, so a second copy of the package in a profile — which a per-line alias
|
|
9
|
+
* exists to create — is what makes a host read itself as another release and
|
|
10
|
+
* disable its own rows as incompatible.
|
|
11
|
+
*/
|
|
12
|
+
export const name = 'tui-host-runner';
|
|
13
|
+
export async function apply(ctx) {
|
|
14
|
+
const { default: runner } = await import('@deepseek-ai/dsh-cordis-host-runner');
|
|
15
|
+
ctx.plugin(runner);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAA;AAErC,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAY;IACtC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,qCAAqC,CAAC,CAAA;IAC/E,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACpB,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -6,7 +6,10 @@ export declare const name = "tui";
|
|
|
6
6
|
*
|
|
7
7
|
* `tools` is what lets a card read its tool's own render intent; a context that
|
|
8
8
|
* has not injected it throws on the property read, which silently degraded
|
|
9
|
-
* every card to a bare generic row.
|
|
9
|
+
* every card to a bare generic row. `agentPresets` is the roster this bundle
|
|
10
|
+
* mounts: the host row that provides it applies only once the harness's settings
|
|
11
|
+
* exist, which is after `agents` and `tools` come up, so without it here the
|
|
12
|
+
* surface would refuse to build against a roster that is simply not up yet.
|
|
10
13
|
*/
|
|
11
14
|
export declare const inject: string[];
|
|
12
15
|
/**
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AA8BpC,eAAO,MAAM,IAAI,QAAQ,CAAA;AAEzB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAQlD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AA8BpC,eAAO,MAAM,IAAI,QAAQ,CAAA;AAEzB;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,UAAsC,CAAA;AAoBzD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAIhD;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAkazD"}
|