@te-river/opencode-team-mode 1.6.1 → 1.7.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/README.md +117 -118
- package/README.zh-CN.md +98 -100
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +89 -79
- package/dist/agents.js.map +1 -1
- package/dist/approval-gate.d.ts +8 -9
- package/dist/approval-gate.d.ts.map +1 -1
- package/dist/approval-gate.js +13 -14
- package/dist/approval-gate.js.map +1 -1
- package/dist/capabilities.d.ts +11 -37
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +11 -141
- package/dist/capabilities.js.map +1 -1
- package/dist/commands.js +1 -1
- package/dist/envprotect/hook.d.ts +12 -31
- package/dist/envprotect/hook.d.ts.map +1 -1
- package/dist/envprotect/hook.js +13 -91
- package/dist/envprotect/hook.js.map +1 -1
- package/dist/envprotect/patterns.d.ts +6 -4
- package/dist/envprotect/patterns.d.ts.map +1 -1
- package/dist/envprotect/patterns.js +6 -4
- package/dist/envprotect/patterns.js.map +1 -1
- package/dist/envprotect.d.ts +1 -1
- package/dist/envprotect.d.ts.map +1 -1
- package/dist/envprotect.js +1 -1
- package/dist/envprotect.js.map +1 -1
- package/dist/host/note.d.ts.map +1 -1
- package/dist/host/note.js +8 -5
- package/dist/host/note.js.map +1 -1
- package/dist/host/v2-browser-gate.d.ts +19 -1
- package/dist/host/v2-browser-gate.d.ts.map +1 -1
- package/dist/host/v2-browser-gate.js +47 -6
- package/dist/host/v2-browser-gate.js.map +1 -1
- package/dist/host/v2-capabilities.d.ts +43 -0
- package/dist/host/v2-capabilities.d.ts.map +1 -1
- package/dist/host/v2-capabilities.js +77 -1
- package/dist/host/v2-capabilities.js.map +1 -1
- package/dist/host/v2-compaction.d.ts +129 -0
- package/dist/host/v2-compaction.d.ts.map +1 -0
- package/dist/host/v2-compaction.js +346 -0
- package/dist/host/v2-compaction.js.map +1 -0
- package/dist/host/v2-default-agent.d.ts +37 -0
- package/dist/host/v2-default-agent.d.ts.map +1 -0
- package/dist/host/v2-default-agent.js +128 -0
- package/dist/host/v2-default-agent.js.map +1 -0
- package/dist/host/v2-events.d.ts +2 -0
- package/dist/host/v2-events.d.ts.map +1 -1
- package/dist/host/v2-events.js +27 -0
- package/dist/host/v2-events.js.map +1 -1
- package/dist/host/v2-guard.d.ts +178 -0
- package/dist/host/v2-guard.d.ts.map +1 -1
- package/dist/host/v2-guard.js +324 -8
- package/dist/host/v2-guard.js.map +1 -1
- package/dist/host/v2-offload.d.ts +1 -1
- package/dist/host/v2-offload.js +2 -2
- package/dist/host/v2-permissions.d.ts +45 -44
- package/dist/host/v2-permissions.d.ts.map +1 -1
- package/dist/host/v2-permissions.js +48 -49
- package/dist/host/v2-permissions.js.map +1 -1
- package/dist/host/v2-probe-chain.d.ts +93 -0
- package/dist/host/v2-probe-chain.d.ts.map +1 -0
- package/dist/host/v2-probe-chain.js +146 -0
- package/dist/host/v2-probe-chain.js.map +1 -0
- package/dist/host/v2-prune.d.ts +157 -0
- package/dist/host/v2-prune.d.ts.map +1 -0
- package/dist/host/v2-prune.js +507 -0
- package/dist/host/v2-prune.js.map +1 -0
- package/dist/host/v2-retry.d.ts +143 -0
- package/dist/host/v2-retry.d.ts.map +1 -0
- package/dist/host/v2-retry.js +315 -0
- package/dist/host/v2-retry.js.map +1 -0
- package/dist/host/v2-scope.d.ts.map +1 -1
- package/dist/host/v2-scope.js +14 -7
- package/dist/host/v2-scope.js.map +1 -1
- package/dist/host/v2-session-client.d.ts +62 -7
- package/dist/host/v2-session-client.d.ts.map +1 -1
- package/dist/host/v2-session-client.js +485 -26
- package/dist/host/v2-session-client.js.map +1 -1
- package/dist/host/v2-session.d.ts +72 -1
- package/dist/host/v2-session.d.ts.map +1 -1
- package/dist/host/v2-session.js +154 -10
- package/dist/host/v2-session.js.map +1 -1
- package/dist/host/v2-tool.d.ts +2 -3
- package/dist/host/v2-tool.d.ts.map +1 -1
- package/dist/host/v2-tool.js +2 -3
- package/dist/host/v2-tool.js.map +1 -1
- package/dist/host/v2-types.d.ts +25 -0
- package/dist/host/v2-types.d.ts.map +1 -1
- package/dist/host/v2.d.ts +14 -12
- package/dist/host/v2.d.ts.map +1 -1
- package/dist/host/v2.js +648 -74
- package/dist/host/v2.js.map +1 -1
- package/dist/identity.d.ts +27 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +34 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +9 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -27
- package/dist/index.js.map +1 -1
- package/dist/prompts/lead.d.ts +1 -1
- package/dist/prompts/lead.d.ts.map +1 -1
- package/dist/prompts/lead.js +44 -27
- package/dist/prompts/lead.js.map +1 -1
- package/dist/prompts/shared.d.ts +2 -2
- package/dist/prompts/shared.d.ts.map +1 -1
- package/dist/prompts/shared.js +74 -57
- package/dist/prompts/shared.js.map +1 -1
- package/dist/prompts/specialists.d.ts +2 -2
- package/dist/prompts/specialists.d.ts.map +1 -1
- package/dist/prompts/specialists.js +53 -83
- package/dist/prompts/specialists.js.map +1 -1
- package/dist/tm/args-schema.d.ts +7 -32
- package/dist/tm/args-schema.d.ts.map +1 -1
- package/dist/tm/args-schema.js +12 -153
- package/dist/tm/args-schema.js.map +1 -1
- package/dist/tm/board.d.ts +10 -9
- package/dist/tm/board.d.ts.map +1 -1
- package/dist/tm/board.js +11 -10
- package/dist/tm/board.js.map +1 -1
- package/dist/tm/config-files.d.ts +81 -0
- package/dist/tm/config-files.d.ts.map +1 -0
- package/dist/tm/config-files.js +209 -0
- package/dist/tm/config-files.js.map +1 -0
- package/dist/tm/config-layers.d.ts +117 -0
- package/dist/tm/config-layers.d.ts.map +1 -0
- package/dist/tm/config-layers.js +320 -0
- package/dist/tm/config-layers.js.map +1 -0
- package/dist/tm/config.d.ts +10 -101
- package/dist/tm/config.d.ts.map +1 -1
- package/dist/tm/config.js +17 -71
- package/dist/tm/config.js.map +1 -1
- package/dist/tm/dispatch.d.ts +154 -22
- package/dist/tm/dispatch.d.ts.map +1 -1
- package/dist/tm/dispatch.js +559 -80
- package/dist/tm/dispatch.js.map +1 -1
- package/dist/tm/egress.d.ts +19 -7
- package/dist/tm/egress.d.ts.map +1 -1
- package/dist/tm/egress.js +21 -9
- package/dist/tm/egress.js.map +1 -1
- package/dist/tm/index.d.ts +23 -20
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +117 -116
- package/dist/tm/index.js.map +1 -1
- package/dist/tm/ledger.d.ts +9 -2
- package/dist/tm/ledger.d.ts.map +1 -1
- package/dist/tm/ledger.js +4 -1
- package/dist/tm/ledger.js.map +1 -1
- package/dist/tm/perm-ask.d.ts +3 -3
- package/dist/tm/perm-ask.d.ts.map +1 -1
- package/dist/tm/perm-ask.js +3 -3
- package/dist/tm/perm-ask.js.map +1 -1
- package/dist/tm/pipelines.d.ts +12 -11
- package/dist/tm/pipelines.d.ts.map +1 -1
- package/dist/tm/pipelines.js +40 -207
- package/dist/tm/pipelines.js.map +1 -1
- package/dist/tm/preview.d.ts +1 -1
- package/dist/tm/preview.js +3 -3
- package/dist/tm/preview.js.map +1 -1
- package/dist/tm/refs.d.ts +31 -4
- package/dist/tm/refs.d.ts.map +1 -1
- package/dist/tm/refs.js +48 -4
- package/dist/tm/refs.js.map +1 -1
- package/dist/tm/result.d.ts +1 -1
- package/dist/tm/result.d.ts.map +1 -1
- package/dist/tm/result.js +4 -3
- package/dist/tm/result.js.map +1 -1
- package/dist/tm/search.d.ts +2 -2
- package/dist/tm/search.js +7 -7
- package/dist/tm/search.js.map +1 -1
- package/dist/tm/serp-loop.d.ts +19 -7
- package/dist/tm/serp-loop.d.ts.map +1 -1
- package/dist/tm/serp-loop.js +24 -9
- package/dist/tm/serp-loop.js.map +1 -1
- package/dist/tm/stats.d.ts +31 -27
- package/dist/tm/stats.d.ts.map +1 -1
- package/dist/tm/stats.js +170 -58
- package/dist/tm/stats.js.map +1 -1
- package/dist/tm/store.d.ts +18 -5
- package/dist/tm/store.d.ts.map +1 -1
- package/dist/tm/store.js +39 -9
- package/dist/tm/store.js.map +1 -1
- package/dist/tm/tools.d.ts +7 -5
- package/dist/tm/tools.d.ts.map +1 -1
- package/dist/tm/tools.js +10 -41
- package/dist/tm/tools.js.map +1 -1
- package/dist/tm/webfetch.d.ts +1 -1
- package/dist/tm/webfetch.d.ts.map +1 -1
- package/dist/tm/webfetch.js +38 -23
- package/dist/tm/webfetch.js.map +1 -1
- package/dist/types.d.ts +40 -123
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -21
- package/dist/types.js.map +1 -1
- package/docs/installation-v2.md +124 -39
- package/docs/installation.md +9 -0
- package/docs/research/browser-pane.md +5 -0
- package/docs/v2-port-notes.md +500 -315
- package/package.json +1 -1
- package/scripts/gen-v2-config.mjs +246 -94
- package/scripts/lib/fake-ctx.mjs +244 -146
|
@@ -20,11 +20,69 @@
|
|
|
20
20
|
* registration, and nothing is claimed that the host did not hand us.
|
|
21
21
|
*/
|
|
22
22
|
import type { V2Registration, V2Context } from "./v2-types.js";
|
|
23
|
+
/**
|
|
24
|
+
* Context lines the host's compaction summarizer must carry forward. On v2 the
|
|
25
|
+
* seam is `session.hook("compaction")` and the lines ride `event.system[]` as
|
|
26
|
+
* text parts; we ADD and never replace, so the summarizer stays the host's and
|
|
27
|
+
* whatever the host itself learns to preserve is not voided. (v1 pushed the
|
|
28
|
+
* same list through `experimental.session.compacting` → `output.context[]`;
|
|
29
|
+
* the list moved here when the v1 adapter layer was cut, and its content is
|
|
30
|
+
* unchanged — it is the only survivor of `src/host-hooks.ts`.)
|
|
31
|
+
*
|
|
32
|
+
* Each line corresponds to a thing that, once summarized away, cannot be
|
|
33
|
+
* re-derived without spending a round to rediscover it:
|
|
34
|
+
* - the reply skeleton — prose instead of STATUS:/CHANGES/… makes the
|
|
35
|
+
* lead's machine check fail for the rest of the session;
|
|
36
|
+
* - offload handles (ref/access_token/expire_at) — they are the ONLY
|
|
37
|
+
* window onto a payload that never entered context;
|
|
38
|
+
* - sub-agent child session ids (host `task`, leftovers of the old
|
|
39
|
+
* running work, and after a summary it looks indistinguishably like done
|
|
40
|
+
* work;
|
|
41
|
+
* - provenance (file:line / URL + confidence) — without it a finding
|
|
42
|
+
* degrades into model memory, the one thing this project refuses;
|
|
43
|
+
* - the todo list and board paths — the state lives there, not in chat.
|
|
44
|
+
*/
|
|
45
|
+
export declare const COMPACTION_CONTEXT: string[];
|
|
23
46
|
/** Sentinel for "this role may not browse at all" — it removes the host's whole
|
|
24
47
|
* browser catalog (45 `browser_*` tools on 2.0.16), not just our own door.
|
|
25
48
|
* Leaving them in would hand back, at the request layer, exactly the surface the
|
|
26
49
|
* whitelist exists to withhold. */
|
|
27
50
|
export declare const BROWSER_CATALOG = "browser_*";
|
|
51
|
+
/**
|
|
52
|
+
* #49 feature 4 — task splitting (拆大化小), the cheap mechanical half.
|
|
53
|
+
*
|
|
54
|
+
* The prompt discipline (`## Task splitting` in the lead prompt) says a dispatch
|
|
55
|
+
* owns ONE independently verifiable deliverable. This is the trigger that makes
|
|
56
|
+
* the discipline visible at the moment it is being broken: a `subagent` brief
|
|
57
|
+
* whose text exceeds `TM_SPLIT_BRIEF_TOKENS` arms ONE advice line, injected into
|
|
58
|
+
* the lead's NEXT request. It only ever ADVISES — nothing is rejected, no input
|
|
59
|
+
* is rewritten — because the dupe-guard lesson is that a model can ignore a
|
|
60
|
+
* directive, and a hard gate here would block legitimate large-but-single work.
|
|
61
|
+
*
|
|
62
|
+
* The brief text is read at `tool.hook("execute.before")`, the only seam that
|
|
63
|
+
* sees the `subagent` call's own `input` (the host's field is `input`, and it IS
|
|
64
|
+
* the argument object — measured in v2-subagent.ts). `session.hook("context")`
|
|
65
|
+
* cannot see it: its `messages` are the parent's assembled history, not the
|
|
66
|
+
* dispatch brief. So the trigger lives on `execute.before` and the injection on
|
|
67
|
+
* `context`, both owned by this layer.
|
|
68
|
+
*/
|
|
69
|
+
export declare const SPLIT_MARKER = "## Team Split";
|
|
70
|
+
export interface SplitConfig {
|
|
71
|
+
enabled: boolean;
|
|
72
|
+
/** A brief above this many tokens arms the advice. */
|
|
73
|
+
briefTokens: number;
|
|
74
|
+
/** The criteria count the prompt names as "split past this". */
|
|
75
|
+
maxCriteria: number;
|
|
76
|
+
}
|
|
77
|
+
export declare const SPLIT_DEFAULTS: SplitConfig;
|
|
78
|
+
/** `TM_SPLIT_ADVICE=off` disables; the two numbers are clamped, never trusted raw. */
|
|
79
|
+
export declare function resolveSplitConfig(env?: Record<string, string | undefined>): SplitConfig;
|
|
80
|
+
/** The brief text of a `subagent` dispatch, or "" when the input is not one.
|
|
81
|
+
* `prompt` is the brief; `description` is the fallback the host also carries. */
|
|
82
|
+
export declare function briefTextOf(input: unknown): string;
|
|
83
|
+
/** The ONE advice line. It names the measured size, the split rule, and the
|
|
84
|
+
* escape hatch — a directive the user can turn off is not a silent behaviour. */
|
|
85
|
+
export declare function splitAdviceText(briefTokens: number, briefTokensLimit: number, maxCriteria: number): string;
|
|
28
86
|
/**
|
|
29
87
|
* The tools one agent must never be offered. Only a literal `deny` removes:
|
|
30
88
|
* the `{ "*": "ask" }` object form means "callable, gated", and deleting such a
|
|
@@ -40,7 +98,9 @@ export declare const BROWSER_CATALOG = "browser_*";
|
|
|
40
98
|
* behind it, i.e. a dialog instead of a hard throw.
|
|
41
99
|
*/
|
|
42
100
|
export declare function toolsToRemove(permission: Record<string, unknown> | undefined | null): string[];
|
|
43
|
-
/** Built once per agent id so the hook body stays a set lookup on a hot path.
|
|
101
|
+
/** Built once per agent id so the hook body stays a set lookup on a hot path.
|
|
102
|
+
* #38: keys are normalized (lower case) so a host reporting `team` and a config
|
|
103
|
+
* declaring `Team` resolve to the same plan entry. */
|
|
44
104
|
export declare function removalPlan(agents: Record<string, {
|
|
45
105
|
permission?: Record<string, unknown>;
|
|
46
106
|
}>): Map<string, Set<string>>;
|
|
@@ -58,6 +118,11 @@ export interface SessionLayerInput {
|
|
|
58
118
|
* trim is already keyed by agent (a foreign role is not in the plan, so nothing
|
|
59
119
|
* is deleted); this closes the other three. */
|
|
60
120
|
scope?: import("./v2-scope.js").TeamScope;
|
|
121
|
+
/** #49 feature 4: the split-advice knobs. Absent = the defaults (on). */
|
|
122
|
+
split?: SplitConfig;
|
|
123
|
+
/** Fired for each observable split outcome so the personality can write the
|
|
124
|
+
* `step_id:"v2-split"` trajectory line — the layer owns no store. */
|
|
125
|
+
onSplit?: (row: Record<string, unknown>) => void;
|
|
61
126
|
}
|
|
62
127
|
export interface SessionLayerReport {
|
|
63
128
|
temperature: number | false;
|
|
@@ -71,6 +136,12 @@ export interface SessionLayerReport {
|
|
|
71
136
|
* model's own callable list was nine native tools. Reporting the sent flag as if it
|
|
72
137
|
* were the outcome is the overstated claim this product exists to refuse. */
|
|
73
138
|
tmInRequestSurface: boolean;
|
|
139
|
+
/** #49 feature 4: `subagent` briefs measured on a Team session. */
|
|
140
|
+
splitSeen: number;
|
|
141
|
+
/** …of those, how many armed the advice AND had it injected into a request. */
|
|
142
|
+
splitAdvised: number;
|
|
143
|
+
/** A throw inside the split hooks is swallowed and counted, never propagated. */
|
|
144
|
+
splitThrew: number;
|
|
74
145
|
}
|
|
75
146
|
/**
|
|
76
147
|
* Register the request-layer hooks. Returns the registrations (so the caller
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-session.d.ts","sourceRoot":"","sources":["../../src/host/v2-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;
|
|
1
|
+
{"version":3,"file":"v2-session.d.ts","sourceRoot":"","sources":["../../src/host/v2-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAoB,SAAS,EAAE,MAAM,eAAe,CAAA;AAEhF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,kBAAkB,UAO9B,CAAA;AAUD;;;oCAGoC;AACpC,eAAO,MAAM,eAAe,cAAc,CAAA;AAI1C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,kBAAkB,CAAA;AAE3C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,WAAkE,CAAA;AAU/F,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,WAAW,CAMrG;AAED;kFACkF;AAClF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMlD;AAED;kFACkF;AAClF,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1G;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAyB9F;AAED;;uDAEuD;AACvD,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GAC/D,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAI1B;AAKD,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,WAAW,EAAE,MAAM,GAAG,KAAK,CAAA;IAC3B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9B;;;;oDAIgD;IAChD,KAAK,CAAC,EAAE,OAAO,eAAe,EAAE,SAAS,CAAA;IACzC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;0EACsE;IACtE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB;;;;;kFAK8E;IAC9E,kBAAkB,EAAE,OAAO,CAAA;IAC3B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAA;IACjB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAA;IACpB,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC;IAAE,aAAa,EAAE,cAAc,EAAE,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,CAAC,CA6I1E"}
|
package/dist/host/v2-session.js
CHANGED
|
@@ -19,8 +19,39 @@
|
|
|
19
19
|
* Everything here is additive and reversible: each hook returns a disposable
|
|
20
20
|
* registration, and nothing is claimed that the host did not hand us.
|
|
21
21
|
*/
|
|
22
|
-
import { COMPACTION_CONTEXT } from "../host-hooks.js";
|
|
23
22
|
import { V2_LADDER_ACTIONS } from "./v2-permissions.js";
|
|
23
|
+
import { normalizeAgentName } from "../identity.js";
|
|
24
|
+
import { estimateTokens } from "../tm/config.js";
|
|
25
|
+
/**
|
|
26
|
+
* Context lines the host's compaction summarizer must carry forward. On v2 the
|
|
27
|
+
* seam is `session.hook("compaction")` and the lines ride `event.system[]` as
|
|
28
|
+
* text parts; we ADD and never replace, so the summarizer stays the host's and
|
|
29
|
+
* whatever the host itself learns to preserve is not voided. (v1 pushed the
|
|
30
|
+
* same list through `experimental.session.compacting` → `output.context[]`;
|
|
31
|
+
* the list moved here when the v1 adapter layer was cut, and its content is
|
|
32
|
+
* unchanged — it is the only survivor of `src/host-hooks.ts`.)
|
|
33
|
+
*
|
|
34
|
+
* Each line corresponds to a thing that, once summarized away, cannot be
|
|
35
|
+
* re-derived without spending a round to rediscover it:
|
|
36
|
+
* - the reply skeleton — prose instead of STATUS:/CHANGES/… makes the
|
|
37
|
+
* lead's machine check fail for the rest of the session;
|
|
38
|
+
* - offload handles (ref/access_token/expire_at) — they are the ONLY
|
|
39
|
+
* window onto a payload that never entered context;
|
|
40
|
+
* - sub-agent child session ids (host `task`, leftovers of the old
|
|
41
|
+
* running work, and after a summary it looks indistinguishably like done
|
|
42
|
+
* work;
|
|
43
|
+
* - provenance (file:line / URL + confidence) — without it a finding
|
|
44
|
+
* degrades into model memory, the one thing this project refuses;
|
|
45
|
+
* - the todo list and board paths — the state lives there, not in chat.
|
|
46
|
+
*/
|
|
47
|
+
export const COMPACTION_CONTEXT = [
|
|
48
|
+
"The GOAL directive survives compaction: the user's own ask (GOAL + its ACCEPTANCE criteria) is the contract for this run — carry it verbatim, keep working while a criterion lacks EVIDENCE, and never let a summarized transcript quietly redefine or shrink what they asked for.",
|
|
49
|
+
"OpenCode TeamMode contract survives compaction: every specialist reply keeps the STATUS / CHANGES / FINDINGS / EVIDENCE / HANDOFF skeleton and the lead machine-checks it — never summarize a reply into prose without those keys.",
|
|
50
|
+
"Offloaded payloads are addressed by handle (ref + access_token + expire_at) from tm_* results. Carry the handles forward VERBATIM; never re-run a tool to rediscover a payload a handle already names.",
|
|
51
|
+
"Sub-agent children (the host's task tool, including background tasks) must survive with their session ids: an uncollected child is still-running work, not finished work — and a turn that ends with children open does NOT mean the task is done. After this summary, keep waiting/collecting before reporting anything as delivered.",
|
|
52
|
+
"Every finding keeps its source (file:line or URL) and confidence tag after compaction, otherwise it is unverifiable memory.",
|
|
53
|
+
"The todo list and the blackboard files are the state, not the transcript: keep task items and board paths, drop chit-chat and raw command echo.",
|
|
54
|
+
];
|
|
24
55
|
/** v1 named three built-in tools differently from v2's tool ids. Anything not
|
|
25
56
|
* listed is already spelled the same on both sides. */
|
|
26
57
|
const TOOL_RENAMES = {
|
|
@@ -34,6 +65,56 @@ const TOOL_RENAMES = {
|
|
|
34
65
|
* whitelist exists to withhold. */
|
|
35
66
|
export const BROWSER_CATALOG = "browser_*";
|
|
36
67
|
const isDeny = (value) => value === "deny";
|
|
68
|
+
/**
|
|
69
|
+
* #49 feature 4 — task splitting (拆大化小), the cheap mechanical half.
|
|
70
|
+
*
|
|
71
|
+
* The prompt discipline (`## Task splitting` in the lead prompt) says a dispatch
|
|
72
|
+
* owns ONE independently verifiable deliverable. This is the trigger that makes
|
|
73
|
+
* the discipline visible at the moment it is being broken: a `subagent` brief
|
|
74
|
+
* whose text exceeds `TM_SPLIT_BRIEF_TOKENS` arms ONE advice line, injected into
|
|
75
|
+
* the lead's NEXT request. It only ever ADVISES — nothing is rejected, no input
|
|
76
|
+
* is rewritten — because the dupe-guard lesson is that a model can ignore a
|
|
77
|
+
* directive, and a hard gate here would block legitimate large-but-single work.
|
|
78
|
+
*
|
|
79
|
+
* The brief text is read at `tool.hook("execute.before")`, the only seam that
|
|
80
|
+
* sees the `subagent` call's own `input` (the host's field is `input`, and it IS
|
|
81
|
+
* the argument object — measured in v2-subagent.ts). `session.hook("context")`
|
|
82
|
+
* cannot see it: its `messages` are the parent's assembled history, not the
|
|
83
|
+
* dispatch brief. So the trigger lives on `execute.before` and the injection on
|
|
84
|
+
* `context`, both owned by this layer.
|
|
85
|
+
*/
|
|
86
|
+
export const SPLIT_MARKER = "## Team Split";
|
|
87
|
+
export const SPLIT_DEFAULTS = { enabled: true, briefTokens: 4000, maxCriteria: 3 };
|
|
88
|
+
const isOff = (value) => typeof value === "string" && /^(off|0|false|no)$/i.test(value.trim());
|
|
89
|
+
const clampNum = (raw, fallback, min, max) => {
|
|
90
|
+
const n = Number(raw);
|
|
91
|
+
if (!Number.isFinite(n))
|
|
92
|
+
return fallback;
|
|
93
|
+
return Math.min(max, Math.max(min, Math.round(n)));
|
|
94
|
+
};
|
|
95
|
+
/** `TM_SPLIT_ADVICE=off` disables; the two numbers are clamped, never trusted raw. */
|
|
96
|
+
export function resolveSplitConfig(env = process.env) {
|
|
97
|
+
return {
|
|
98
|
+
enabled: !isOff(env.TM_SPLIT_ADVICE),
|
|
99
|
+
briefTokens: clampNum(env.TM_SPLIT_BRIEF_TOKENS, SPLIT_DEFAULTS.briefTokens, 200, 200_000),
|
|
100
|
+
maxCriteria: clampNum(env.TM_SPLIT_MAX_CRITERIA, SPLIT_DEFAULTS.maxCriteria, 1, 50),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/** The brief text of a `subagent` dispatch, or "" when the input is not one.
|
|
104
|
+
* `prompt` is the brief; `description` is the fallback the host also carries. */
|
|
105
|
+
export function briefTextOf(input) {
|
|
106
|
+
if (!input || typeof input !== "object" || Array.isArray(input))
|
|
107
|
+
return "";
|
|
108
|
+
const a = input;
|
|
109
|
+
const prompt = typeof a.prompt === "string" ? a.prompt : "";
|
|
110
|
+
const desc = typeof a.description === "string" ? a.description : "";
|
|
111
|
+
return prompt || desc;
|
|
112
|
+
}
|
|
113
|
+
/** The ONE advice line. It names the measured size, the split rule, and the
|
|
114
|
+
* escape hatch — a directive the user can turn off is not a silent behaviour. */
|
|
115
|
+
export function splitAdviceText(briefTokens, briefTokensLimit, maxCriteria) {
|
|
116
|
+
return `${SPLIT_MARKER}\n上一次派发的 brief 约 ${briefTokens} token(阈值 ${briefTokensLimit},验收标准上限 ${maxCriteria} 条):请把它拆成可独立验收的小片——每个 dispatch 只服务一条可验收的交付,各自带 verbatim 数据契约;每片都要能独立验收,否则不是拆分而是切碎。可 TM_SPLIT_ADVICE=off 关闭。`;
|
|
117
|
+
}
|
|
37
118
|
/**
|
|
38
119
|
* The tools one agent must never be offered. Only a literal `deny` removes:
|
|
39
120
|
* the `{ "*": "ask" }` object form means "callable, gated", and deleting such a
|
|
@@ -53,10 +134,10 @@ export function toolsToRemove(permission) {
|
|
|
53
134
|
for (const [key, value] of Object.entries(permission ?? {})) {
|
|
54
135
|
if (!isDeny(value))
|
|
55
136
|
continue;
|
|
56
|
-
if (key === "
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
// the exact surface the whitelist withholds.
|
|
137
|
+
if (key === "browser") {
|
|
138
|
+
// The matrix names the host's `browser` action directly (the self-built
|
|
139
|
+
// self-built browser is retired). A deny on it removes the whole native catalog
|
|
140
|
+
// from the request, which is the exact surface the whitelist withholds.
|
|
60
141
|
names.push(BROWSER_CATALOG);
|
|
61
142
|
}
|
|
62
143
|
// A `tm_*` key IS a tool name, so a DENY on one has to remove it too —
|
|
@@ -77,11 +158,13 @@ export function toolsToRemove(permission) {
|
|
|
77
158
|
}
|
|
78
159
|
return [...new Set(names)];
|
|
79
160
|
}
|
|
80
|
-
/** Built once per agent id so the hook body stays a set lookup on a hot path.
|
|
161
|
+
/** Built once per agent id so the hook body stays a set lookup on a hot path.
|
|
162
|
+
* #38: keys are normalized (lower case) so a host reporting `team` and a config
|
|
163
|
+
* declaring `Team` resolve to the same plan entry. */
|
|
81
164
|
export function removalPlan(agents) {
|
|
82
165
|
const plan = new Map();
|
|
83
166
|
for (const [id, cfg] of Object.entries(agents))
|
|
84
|
-
plan.set(id, new Set(toolsToRemove(cfg?.permission)));
|
|
167
|
+
plan.set(normalizeAgentName(id), new Set(toolsToRemove(cfg?.permission)));
|
|
85
168
|
return plan;
|
|
86
169
|
}
|
|
87
170
|
const removable = (name, denied) => denied.has(name) || (denied.has(BROWSER_CATALOG) && name.startsWith("browser_"));
|
|
@@ -99,15 +182,27 @@ export async function applyV2SessionLayer(ctx, input) {
|
|
|
99
182
|
notePushed: false,
|
|
100
183
|
compactionLines: 0,
|
|
101
184
|
tmInRequestSurface: false,
|
|
185
|
+
splitSeen: 0,
|
|
186
|
+
splitAdvised: 0,
|
|
187
|
+
splitThrew: 0,
|
|
102
188
|
};
|
|
103
189
|
const session = ctx.session;
|
|
104
190
|
if (!session || typeof session.hook !== "function") {
|
|
105
191
|
return { registrations, report };
|
|
106
192
|
}
|
|
193
|
+
// #49 feature 4: the pending split advice, armed by a `subagent` brief on
|
|
194
|
+
// `execute.before` and consumed by the lead's next `context` request. Held in
|
|
195
|
+
// this closure so the two hooks share one slot; consumed once so a replayed
|
|
196
|
+
// hook cannot duplicate it.
|
|
197
|
+
const split = input.split ?? SPLIT_DEFAULTS;
|
|
198
|
+
let pendingAdvice = null;
|
|
107
199
|
// Property-access calls, never a captured reference — a detached `hook` loses
|
|
108
200
|
// its receiver and the host's client throws (see the §10 rule in dispatch.ts).
|
|
109
201
|
registrations.push(await session.hook("context", (event) => {
|
|
110
202
|
const agent = String(event?.agent ?? "");
|
|
203
|
+
// #38: the plan and the report are keyed by the NORMALIZED name, so a host
|
|
204
|
+
// reporting `team` and a config declaring `Team` hit the same entry.
|
|
205
|
+
const agentKey = normalizeAgentName(agent);
|
|
111
206
|
// Anything below this line MUTATES the outgoing request. On a host where
|
|
112
207
|
// one plugin serves every agent, an unguarded write here would set a build
|
|
113
208
|
// session's temperature, push our board note into a plan session's system
|
|
@@ -115,7 +210,7 @@ export async function applyV2SessionLayer(ctx, input) {
|
|
|
115
210
|
if (input.scope && input.scope.count(input.scope.decide(event)) !== "ours")
|
|
116
211
|
return;
|
|
117
212
|
input.scope?.learn(agent, event.sessionID);
|
|
118
|
-
const denied = input.plan.get(
|
|
213
|
+
const denied = input.plan.get(agentKey);
|
|
119
214
|
if (denied?.size && event.tools && typeof event.tools === "object") {
|
|
120
215
|
let cut = 0;
|
|
121
216
|
for (const name of Object.keys(event.tools)) {
|
|
@@ -125,7 +220,7 @@ export async function applyV2SessionLayer(ctx, input) {
|
|
|
125
220
|
cut++;
|
|
126
221
|
}
|
|
127
222
|
if (cut)
|
|
128
|
-
report.removed[
|
|
223
|
+
report.removed[agentKey] = (report.removed[agentKey] ?? 0) + cut;
|
|
129
224
|
}
|
|
130
225
|
// The observation that settles the delivery question: whatever is left in the
|
|
131
226
|
// request's own tool map is what the model can call directly. A `tm_*` name
|
|
@@ -144,7 +239,7 @@ export async function applyV2SessionLayer(ctx, input) {
|
|
|
144
239
|
if (event.options.temperature === undefined)
|
|
145
240
|
event.options.temperature = input.temperature;
|
|
146
241
|
}
|
|
147
|
-
if (input.note && input.noteAgents.
|
|
242
|
+
if (input.note && input.noteAgents.some((n) => normalizeAgentName(n) === agentKey) && Array.isArray(event.system)) {
|
|
148
243
|
// The hook runs before EVERY model call; if the host reuses the array,
|
|
149
244
|
// an unguarded push would repeat the note until it crowds out the work.
|
|
150
245
|
const already = event.system.some((p) => typeof p?.text === "string" && p.text.includes("## Team Blackboard"));
|
|
@@ -153,6 +248,24 @@ export async function applyV2SessionLayer(ctx, input) {
|
|
|
153
248
|
report.notePushed = true;
|
|
154
249
|
}
|
|
155
250
|
}
|
|
251
|
+
// #49 feature 4: inject the pending split advice into the LEAD's next
|
|
252
|
+
// request only. A child session's agent is also one of ours, so gating on
|
|
253
|
+
// scope alone would hand the advice to a specialist; the lead is the only
|
|
254
|
+
// role that dispatches, so it is the only role the advice is for.
|
|
255
|
+
if (pendingAdvice && agentKey === "team" && Array.isArray(event.system)) {
|
|
256
|
+
const already = event.system.some((p) => typeof p?.text === "string" && p.text.includes(SPLIT_MARKER));
|
|
257
|
+
if (!already) {
|
|
258
|
+
event.system.push({ type: "text", text: pendingAdvice });
|
|
259
|
+
report.splitAdvised++;
|
|
260
|
+
try {
|
|
261
|
+
input.onSplit?.({ event: "injected" });
|
|
262
|
+
}
|
|
263
|
+
catch {
|
|
264
|
+
/* the trajectory line is an extra */
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
pendingAdvice = null;
|
|
268
|
+
}
|
|
156
269
|
}));
|
|
157
270
|
registrations.push(await session.hook("compaction", (event) => {
|
|
158
271
|
if (input.scope && input.scope.count(input.scope.decide(event)) !== "ours")
|
|
@@ -166,6 +279,37 @@ export async function applyV2SessionLayer(ctx, input) {
|
|
|
166
279
|
report.compactionLines++;
|
|
167
280
|
}
|
|
168
281
|
}));
|
|
282
|
+
// #49 feature 4: the trigger. `execute.before` is the only seam that sees the
|
|
283
|
+
// `subagent` call's own `input`; a brief over the threshold arms ONE advice line
|
|
284
|
+
// for the lead's next request. It never rewrites the input and never rejects.
|
|
285
|
+
const tool = ctx.tool;
|
|
286
|
+
if (split.enabled && tool && typeof tool.hook === "function") {
|
|
287
|
+
registrations.push(await tool.hook("execute.before", (event) => {
|
|
288
|
+
try {
|
|
289
|
+
if (String(event?.tool ?? "") !== "subagent")
|
|
290
|
+
return;
|
|
291
|
+
if (input.scope && input.scope.count(input.scope.decide(event)) !== "ours")
|
|
292
|
+
return;
|
|
293
|
+
const brief = briefTextOf(event?.input);
|
|
294
|
+
if (!brief)
|
|
295
|
+
return;
|
|
296
|
+
const tokens = estimateTokens(brief);
|
|
297
|
+
report.splitSeen++;
|
|
298
|
+
if (tokens <= split.briefTokens)
|
|
299
|
+
return;
|
|
300
|
+
pendingAdvice = splitAdviceText(tokens, split.briefTokens, split.maxCriteria);
|
|
301
|
+
try {
|
|
302
|
+
input.onSplit?.({ event: "advised", brief_tokens: tokens });
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
/* the trajectory line is an extra */
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
catch {
|
|
309
|
+
report.splitThrew++;
|
|
310
|
+
}
|
|
311
|
+
}));
|
|
312
|
+
}
|
|
169
313
|
return { registrations, report };
|
|
170
314
|
}
|
|
171
315
|
//# sourceMappingURL=v2-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-session.js","sourceRoot":"","sources":["../../src/host/v2-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"v2-session.js","sourceRoot":"","sources":["../../src/host/v2-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oRAAoR;IACpR,oOAAoO;IACpO,wMAAwM;IACxM,wUAAwU;IACxU,6HAA6H;IAC7H,iJAAiJ;CAClJ,CAAA;AAED;wDACwD;AACxD,MAAM,YAAY,GAAqC;IACrD,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,OAAO;CACrB,CAAA;AAED;;;oCAGoC;AACpC,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAA;AAE1C,MAAM,MAAM,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,KAAK,KAAK,MAAM,CAAA;AAE5D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAA;AAU3C,MAAM,CAAC,MAAM,cAAc,GAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAA;AAE/F,MAAM,KAAK,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;AAEhH,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAE,QAAgB,EAAE,GAAW,EAAE,GAAW,EAAU,EAAE;IACpF,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAA;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC,CAAA;AAED,sFAAsF;AACtF,MAAM,UAAU,kBAAkB,CAAC,MAA0C,OAAO,CAAC,GAAG;IACtF,OAAO;QACL,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;QACpC,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC;QAC1F,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;KACpF,CAAA;AACH,CAAC;AAED;kFACkF;AAClF,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAC1E,MAAM,CAAC,GAAG,KAAgC,CAAA;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACnE,OAAO,MAAM,IAAI,IAAI,CAAA;AACvB,CAAC;AAED;kFACkF;AAClF,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,gBAAwB,EAAE,WAAmB;IAChG,OAAO,GAAG,YAAY,oBAAoB,WAAW,aAAa,gBAAgB,WAAW,WAAW,6GAA6G,CAAA;AACvN,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAC,UAAsD;IAClF,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,SAAQ;QAC5B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,wEAAwE;YACxE,iFAAiF;YACjF,wEAAwE;YACxE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC7B,CAAC;QACD,uEAAuE;QACvE,4EAA4E;QAC5E,0EAA0E;QAC1E,4EAA4E;QAC5E,qDAAqD;QACrD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;QACvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,SAAQ;QAC3C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClB,4EAA4E;QAC5E,+EAA+E;QAC/E,4EAA4E;QAC5E,2EAA2E;QAC3E,IAAI,GAAG,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5B,CAAC;AAED;;uDAEuD;AACvD,MAAM,UAAU,WAAW,CACzB,MAAgE;IAEhE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC3C,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACzH,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,MAAmB,EAAW,EAAE,CAC/D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;AA2ClF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAc,EACd,KAAwB;IAExB,MAAM,aAAa,GAAqB,EAAE,CAAA;IAC1C,MAAM,MAAM,GAAuB;QACjC,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,KAAK;QACjB,eAAe,EAAE,CAAC;QAClB,kBAAkB,EAAE,KAAK;QACzB,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;KACd,CAAA;IACD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;IAC3B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACnD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAA;IAClC,CAAC;IAED,0EAA0E;IAC1E,+EAA+E;IAC/E,4EAA4E;IAC5E,4BAA4B;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,cAAc,CAAA;IAC3C,IAAI,aAAa,GAAkB,IAAI,CAAA;IAEvC,8EAA8E;IAC9E,+EAA+E;IAC/E,aAAa,CAAC,IAAI,CAChB,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAuB,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;QACxC,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC1C,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,gEAAgE;QAChE,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM;YAAE,OAAM;QAClF,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAG,KAAiC,CAAC,SAAS,CAAC,CAAA;QACvE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,MAAM,EAAE,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnE,IAAI,GAAG,GAAG,CAAC,CAAA;YACX,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;oBAAE,SAAQ;gBACtC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACxB,GAAG,EAAE,CAAA;YACP,CAAC;YACD,IAAI,GAAG;gBAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAA;QAC3E,CAAC;QACD,8EAA8E;QAC9E,4EAA4E;QAC5E,8EAA8E;QAC9E,4EAA4E;QAC5E,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAA;oBAChC,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC,CAAQ,0EAA0E;YACxK,yCAAyC;YACzC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;gBAAE,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;QAC5F,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAClH,uEAAuE;YACvE,wEAAwE;YACxE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,OAAQ,CAAwB,EAAE,IAAI,KAAK,QAAQ,IAAK,CAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAC1H,CAAA;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;gBACrD,MAAM,CAAC,UAAU,GAAG,IAAI,CAAA;YAC1B,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,2EAA2E;QAC3E,0EAA0E;QAC1E,kEAAkE;QAClE,IAAI,aAAa,IAAI,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,OAAQ,CAAwB,EAAE,IAAI,KAAK,QAAQ,IAAK,CAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAClH,CAAA;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAA;gBACxD,MAAM,CAAC,YAAY,EAAE,CAAA;gBACrB,IAAI,CAAC;oBACH,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;gBACxC,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;gBACvC,CAAC;YACH,CAAC;YACD,aAAa,GAAG,IAAI,CAAA;QACtB,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IAED,aAAa,CAAC,IAAI,CAChB,MAAM,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,KAAuB,EAAE,EAAE;QAC3D,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM;YAAE,OAAM;QAClF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;YAAE,OAAM;QACzC,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAwB,EAAE,IAAI,KAAK,IAAI,CAAC;gBAAE,SAAQ;YAChF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAC/C,MAAM,CAAC,eAAe,EAAE,CAAA;QAC1B,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IAED,+EAA+E;IAC/E,iFAAiF;IACjF,+EAA+E;IAC/E,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IACrB,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC7D,aAAa,CAAC,IAAI,CAChB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1C,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,KAAK,UAAU;oBAAE,OAAM;gBACpD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,MAAM;oBAAE,OAAM;gBAClF,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;gBACvC,IAAI,CAAC,KAAK;oBAAE,OAAM;gBAClB,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;gBACpC,MAAM,CAAC,SAAS,EAAE,CAAA;gBAClB,IAAI,MAAM,IAAI,KAAK,CAAC,WAAW;oBAAE,OAAM;gBACvC,aAAa,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;gBAC7E,IAAI,CAAC;oBACH,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAA;gBAC7D,CAAC;gBAAC,MAAM,CAAC;oBACP,qCAAqC;gBACvC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,UAAU,EAAE,CAAA;YACrB,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAA;AAClC,CAAC"}
|
package/dist/host/v2-tool.d.ts
CHANGED
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
* returned a bare `output` without declaring an `output` schema came back as
|
|
9
9
|
* "Tool result declared output without an output schema". So the v2 adapter
|
|
10
10
|
* answers with `content` parts instead — text plus `file` entries, which is
|
|
11
|
-
* also the first time
|
|
12
|
-
*
|
|
13
|
-
* still 未验证).
|
|
11
|
+
* also the first time a screenshot attachment has had a host contract we can
|
|
12
|
+
* VERIFY rather than assume (the v1 capability row for it is still 未验证).
|
|
14
13
|
* 2. THE CONTEXT. Our tools read `{directory, sessionID, agent, ask}` off the
|
|
15
14
|
* per-call ctx. v2's ToolContext carries `{sessionID, agent, messageID, id,
|
|
16
15
|
* progress}` and NO directory and NO ask bridge. Directory comes from the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-tool.d.ts","sourceRoot":"","sources":["../../src/host/v2-tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"v2-tool.d.ts","sourceRoot":"","sources":["../../src/host/v2-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,aAAa,CAAA;AACnF,OAAO,KAAK,EAAa,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAkFvF;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgC7F;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWxF;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAcnD;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B;;;iCAG6B;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc,EACnB,SAAS,EAAE,MAAM;AACjB;8EAC8E;AAC9E,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI;AACrD;;;;;wEAKwE;AACxE,IAAI,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkB/B"}
|
package/dist/host/v2-tool.js
CHANGED
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
* returned a bare `output` without declaring an `output` schema came back as
|
|
9
9
|
* "Tool result declared output without an output schema". So the v2 adapter
|
|
10
10
|
* answers with `content` parts instead — text plus `file` entries, which is
|
|
11
|
-
* also the first time
|
|
12
|
-
*
|
|
13
|
-
* still 未验证).
|
|
11
|
+
* also the first time a screenshot attachment has had a host contract we can
|
|
12
|
+
* VERIFY rather than assume (the v1 capability row for it is still 未验证).
|
|
14
13
|
* 2. THE CONTEXT. Our tools read `{directory, sessionID, agent, ask}` off the
|
|
15
14
|
* per-call ctx. v2's ToolContext carries `{sessionID, agent, messageID, id,
|
|
16
15
|
* progress}` and NO directory and NO ask bridge. Directory comes from the
|
package/dist/host/v2-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-tool.js","sourceRoot":"","sources":["../../src/host/v2-tool.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"v2-tool.js","sourceRoot":"","sources":["../../src/host/v2-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/host/v2-types.d.ts
CHANGED
|
@@ -177,6 +177,30 @@ export interface V2SessionHooks {
|
|
|
177
177
|
}
|
|
178
178
|
export interface V2SessionDomain {
|
|
179
179
|
readonly hook: V2Hooks<V2SessionHooks>;
|
|
180
|
+
/**
|
|
181
|
+
* Measured on 2.0.23 (zero-token probe): `compact({})` fails with
|
|
182
|
+
* `Missing key at ["sessionID"]` and a bogus id with `Session.NotFoundError`, so the
|
|
183
|
+
* seam is real and its required key is known. The handler behind it is
|
|
184
|
+
* `a.compact({sessionID, id, delivery})` and a duplicate input id surfaces as
|
|
185
|
+
* `Session.CompactionConflictError` — which is why the caller keeps one admission per
|
|
186
|
+
* usage number instead of firing per request.
|
|
187
|
+
*/
|
|
188
|
+
readonly compact?: (input: {
|
|
189
|
+
sessionID: string;
|
|
190
|
+
id?: string;
|
|
191
|
+
delivery?: string;
|
|
192
|
+
}) => Promise<unknown>;
|
|
193
|
+
readonly [key: string]: unknown;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* `ctx.model.list({})` measured on 2.0.23: `{location, data: […]}` where an item carries
|
|
197
|
+
* `id, modelID, providerID, name, package, settings, capabilities, variants, time, cost,
|
|
198
|
+
* status, enabled, limit{context,output}`. The `limit.context` is the denominator the
|
|
199
|
+
* desktop's own usage meter reads, so the percent we compute means the same percent.
|
|
200
|
+
*/
|
|
201
|
+
export interface V2ModelDomain {
|
|
202
|
+
readonly list?: (options: unknown) => Promise<unknown>;
|
|
203
|
+
readonly default?: (options?: unknown) => Promise<unknown>;
|
|
180
204
|
readonly [key: string]: unknown;
|
|
181
205
|
}
|
|
182
206
|
export interface V2ShellCreateBefore {
|
|
@@ -214,6 +238,7 @@ export interface V2Context {
|
|
|
214
238
|
readonly agent?: V2AgentDomain;
|
|
215
239
|
readonly permission?: V2PermissionDomain;
|
|
216
240
|
readonly session?: V2SessionDomain;
|
|
241
|
+
readonly model?: V2ModelDomain;
|
|
217
242
|
readonly shell?: V2ShellDomain;
|
|
218
243
|
readonly storage?: V2StorageDomain;
|
|
219
244
|
readonly event?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2-types.d.ts","sourceRoot":"","sources":["../../src/host/v2-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"v2-types.d.ts","sourceRoot":"","sources":["../../src/host/v2-types.ts"],"names":[],"mappings":"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"}
|
package/dist/host/v2.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The v2 personality: `Plugin.define({id, setup(ctx)})
|
|
2
|
+
* The v2 personality: `Plugin.define({id, setup(ctx)})` — the only personality
|
|
3
|
+
* since 1.7.0 (v1 support was removed).
|
|
3
4
|
*
|
|
4
5
|
* `Plugin.define` in @opencode/plugin@2.0.16 is literally `plugin => plugin`,
|
|
5
6
|
* so this module exports the plain object and the v2 SDK never becomes a
|
|
6
|
-
* runtime dependency
|
|
7
|
-
* installable by a v1 user who cannot resolve that package at all.
|
|
7
|
+
* runtime dependency.
|
|
8
8
|
*
|
|
9
9
|
* Scope of this file (milestone M2): build the governed runtime on a
|
|
10
10
|
* filesystem-backed client shim, register the tm_* tools through
|
|
@@ -13,17 +13,14 @@
|
|
|
13
13
|
* session hooks / compaction / description appends (#93), or the browser
|
|
14
14
|
* (#95). Those need this seam proven live first.
|
|
15
15
|
*
|
|
16
|
-
* Two
|
|
17
|
-
* discovered later:
|
|
16
|
+
* Two host limits are stated rather than discovered later:
|
|
18
17
|
* - creating agents: `AgentEditor` has no `add`, so the six roles must come
|
|
19
18
|
* from the user's config (the installer writes `agents/*.md`).
|
|
20
|
-
* - the
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* this promotes unconditionally; `defaultAgent: false` in the plugin options
|
|
26
|
-
* opts out, exactly as on v1.
|
|
19
|
+
* - the default-agent promotion: `default(id)` has NO getter, so "only if the
|
|
20
|
+
* user did not choose" is not expressible — the choice is between never
|
|
21
|
+
* promoting and promoting every boot. The user's standing instruction
|
|
22
|
+
* (2026-09-25) is that Team is ALWAYS the default, so this promotes
|
|
23
|
+
* unconditionally; `defaultAgent: false` in the plugin options opts out.
|
|
27
24
|
*
|
|
28
25
|
* The official confirmation dialog is absent as well, and for a different
|
|
29
26
|
* reason: probed on the live host, a plugin has no way to raise one.
|
|
@@ -38,5 +35,10 @@ import type { V2Plugin } from "./v2-types.js";
|
|
|
38
35
|
* the host's own permission config, and the address red line is excluded from
|
|
39
36
|
* "ask the user" because that one has no consent path at all. */
|
|
40
37
|
export declare const V2_NO_DIALOG_NOTE: string;
|
|
38
|
+
/** #49 feature 2: the concurrency cap. Default 3 (matches "at most 3 parallel
|
|
39
|
+
* reviewers" and leaves a normal user headroom); `0` disables it. A missing or
|
|
40
|
+
* unparseable value falls back to the default rather than to 0, because a typo
|
|
41
|
+
* must not silently turn a safety cap off. */
|
|
42
|
+
export declare function resolveMaxConcurrentSubagents(env?: Record<string, string | undefined>): number;
|
|
41
43
|
export declare const v2Personality: V2Plugin;
|
|
42
44
|
//# sourceMappingURL=v2.d.ts.map
|
package/dist/host/v2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/host/v2.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"v2.d.ts","sourceRoot":"","sources":["../../src/host/v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA+BH,OAAO,KAAK,EAA0B,QAAQ,EAA8B,MAAM,eAAe,CAAA;AAEjG;;;;;kEAKkE;AAClE,eAAO,MAAM,iBAAiB,QAGmB,CAAA;AASjD;;;+CAG+C;AAC/C,wBAAgB,6BAA6B,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,MAAM,CAM3G;AAED,eAAO,MAAM,aAAa,EAAE,QAqrC3B,CAAA"}
|