@lloyal-labs/lloyal-agents 2.1.0 → 3.0.1
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/LICENSE +107 -0
- package/LICENSE-FAQ.md +256 -0
- package/README.md +64 -26
- package/dist/Agent.d.ts +13 -2
- package/dist/Agent.d.ts.map +1 -1
- package/dist/Agent.js +10 -0
- package/dist/Agent.js.map +1 -1
- package/dist/AgentPolicy.d.ts +84 -7
- package/dist/AgentPolicy.d.ts.map +1 -1
- package/dist/AgentPolicy.js +32 -4
- package/dist/AgentPolicy.js.map +1 -1
- package/dist/Tool.d.ts +44 -0
- package/dist/Tool.d.ts.map +1 -1
- package/dist/Tool.js +49 -1
- package/dist/Tool.js.map +1 -1
- package/dist/agent-pool.d.ts.map +1 -1
- package/dist/agent-pool.js +187 -16
- package/dist/agent-pool.js.map +1 -1
- package/dist/app-config.d.ts +50 -0
- package/dist/app-config.d.ts.map +1 -0
- package/dist/app-config.js +27 -0
- package/dist/app-config.js.map +1 -0
- package/dist/app-types.d.ts +309 -0
- package/dist/app-types.d.ts.map +1 -0
- package/dist/app-types.js +28 -0
- package/dist/app-types.js.map +1 -0
- package/dist/chunk.d.ts +118 -0
- package/dist/chunk.d.ts.map +1 -0
- package/dist/chunk.js +19 -0
- package/dist/chunk.js.map +1 -0
- package/dist/context.d.ts +68 -12
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +64 -12
- package/dist/context.js.map +1 -1
- package/dist/create-agent-pool.d.ts +10 -4
- package/dist/create-agent-pool.d.ts.map +1 -1
- package/dist/create-agent-pool.js +7 -6
- package/dist/create-agent-pool.js.map +1 -1
- package/dist/grant-store.d.ts +49 -0
- package/dist/grant-store.d.ts.map +1 -0
- package/dist/grant-store.js +33 -0
- package/dist/grant-store.js.map +1 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/orchestrators.d.ts +7 -0
- package/dist/orchestrators.d.ts.map +1 -1
- package/dist/orchestrators.js.map +1 -1
- package/dist/source.d.ts +31 -1
- package/dist/source.d.ts.map +1 -1
- package/dist/source.js +32 -2
- package/dist/source.js.map +1 -1
- package/dist/spine.d.ts +0 -6
- package/dist/spine.d.ts.map +1 -1
- package/dist/spine.js +18 -2
- package/dist/spine.js.map +1 -1
- package/dist/toolkit.d.ts +44 -17
- package/dist/toolkit.d.ts.map +1 -1
- package/dist/toolkit.js +24 -14
- package/dist/toolkit.js.map +1 -1
- package/dist/trace-types.d.ts +34 -2
- package/dist/trace-types.d.ts.map +1 -1
- package/dist/types.d.ts +27 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/use-agent.d.ts +9 -4
- package/dist/use-agent.d.ts.map +1 -1
- package/dist/use-agent.js +15 -12
- package/dist/use-agent.js.map +1 -1
- package/package.json +7 -5
package/dist/context.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.GrantStoreCtx = exports.AppConfigStoreCtx = exports.AppRegistryCtx = exports.RerankerCtx = exports.SpineFmt = exports.CallingAgent = exports.TraceParent = exports.Trace = exports.Events = exports.Store = exports.Ctx = void 0;
|
|
4
4
|
const effection_1 = require("effection");
|
|
5
5
|
/**
|
|
6
6
|
* Effection context holding the active {@link SessionContext}
|
|
@@ -49,17 +49,6 @@ exports.Trace = (0, effection_1.createContext)('lloyal.trace');
|
|
|
49
49
|
* @category Agents
|
|
50
50
|
*/
|
|
51
51
|
exports.TraceParent = (0, effection_1.createContext)('lloyal.traceParent');
|
|
52
|
-
/**
|
|
53
|
-
* Effection context holding the scratchpad fork parent branch
|
|
54
|
-
*
|
|
55
|
-
* Set by {@link withSpine} to the current spine branch. Tools that
|
|
56
|
-
* need scratchpad extraction (e.g. BufferingFetchPage, BufferingWebSearch)
|
|
57
|
-
* read this via `yield* ScratchpadParent.expect()` to fork from the
|
|
58
|
-
* innermost active spine — never a stale reference from a prior scope.
|
|
59
|
-
*
|
|
60
|
-
* @category Agents
|
|
61
|
-
*/
|
|
62
|
-
exports.ScratchpadParent = (0, effection_1.createContext)('lloyal.scratchpadParent');
|
|
63
52
|
/**
|
|
64
53
|
* Effection context holding the calling agent during DISPATCH
|
|
65
54
|
*
|
|
@@ -91,4 +80,67 @@ exports.CallingAgent = (0, effection_1.createContext)('lloyal.callingAgent');
|
|
|
91
80
|
* @category Agents
|
|
92
81
|
*/
|
|
93
82
|
exports.SpineFmt = (0, effection_1.createContext)('lloyal.spineFmt', null);
|
|
83
|
+
/**
|
|
84
|
+
* Effection context holding the harness-wide {@link Reranker}.
|
|
85
|
+
*
|
|
86
|
+
* Set by the harness once via `RerankerCtx.set(reranker)` after
|
|
87
|
+
* `createReranker(...)`. App factories (`createWebApp`, `createCorpusApp`,
|
|
88
|
+
* third-party apps) read this via `yield* RerankerCtx.expect()` at
|
|
89
|
+
* construction time and pass it to their `Source` / search tools.
|
|
90
|
+
*
|
|
91
|
+
* Replaces the per-source `source.bind({reranker})` pattern — chunks
|
|
92
|
+
* tokenized by one reranker can't be re-bound to another without
|
|
93
|
+
* re-tokenization, so one cross-encoder per harness
|
|
94
|
+
* is the invariant.
|
|
95
|
+
*
|
|
96
|
+
* @category Contract
|
|
97
|
+
*/
|
|
98
|
+
exports.RerankerCtx = (0, effection_1.createContext)('lloyal.reranker');
|
|
99
|
+
/**
|
|
100
|
+
* Effection context holding the {@link AppRegistry}.
|
|
101
|
+
*
|
|
102
|
+
* Set by `createAppRegistry(...)` (lives in `@lloyal-labs/rig`). The
|
|
103
|
+
* scope-guard reads this at tool-dispatch time to resolve
|
|
104
|
+
* the allowed-tools set for an App-assigned spawn — looking up
|
|
105
|
+
* `registry.byName(spawn.assignedApp)` and matching the dispatched
|
|
106
|
+
* `toolName` against `manifest.protocol.tools`.
|
|
107
|
+
*
|
|
108
|
+
* The spine renderer also reads this to compose the catalog in
|
|
109
|
+
* registration order.
|
|
110
|
+
*
|
|
111
|
+
* @category Contract
|
|
112
|
+
*/
|
|
113
|
+
exports.AppRegistryCtx = (0, effection_1.createContext)('lloyal.appRegistry');
|
|
114
|
+
/**
|
|
115
|
+
* Effection context holding the harness's {@link AppConfigStore}.
|
|
116
|
+
*
|
|
117
|
+
* Set by `createAppRegistry({ configStore })` from its `configStore`
|
|
118
|
+
* option, and seeded into each app's detached scope so factories can
|
|
119
|
+
* read it. App factories read their own config via
|
|
120
|
+
* `(yield* AppConfigStoreCtx.expect()).get(manifest.name)` at
|
|
121
|
+
* construction time. The framework validates the stored config against
|
|
122
|
+
* `app.manifest.configSchema` when the app is enabled.
|
|
123
|
+
*
|
|
124
|
+
* Whole-replace semantics on `set`; last-write-wins on concurrent
|
|
125
|
+
* writes.
|
|
126
|
+
*
|
|
127
|
+
* @category Contract
|
|
128
|
+
*/
|
|
129
|
+
exports.AppConfigStoreCtx = (0, effection_1.createContext)('lloyal.appConfigStore');
|
|
130
|
+
/**
|
|
131
|
+
* Effection context holding the session's {@link GrantStore}.
|
|
132
|
+
*
|
|
133
|
+
* Seeded by `createAppRegistry({ grantStore })` (lives in `@lloyal-labs/rig`)
|
|
134
|
+
* alongside {@link AppConfigStoreCtx}. The authGuard
|
|
135
|
+
* reads it once per pool to resolve which `protected` tools the session is
|
|
136
|
+
* authorized to call — `protected` tools without a grant reject at dispatch
|
|
137
|
+
* time (`tool:authReject`). The store holds the consent decision; the
|
|
138
|
+
* **credential never enters the model's context**.
|
|
139
|
+
*
|
|
140
|
+
* Absent context = fail-closed: no grants, every protected tool denied.
|
|
141
|
+
* Open (non-protected) tools never consult it.
|
|
142
|
+
*
|
|
143
|
+
* @category Contract
|
|
144
|
+
*/
|
|
145
|
+
exports.GrantStoreCtx = (0, effection_1.createContext)('lloyal.grantStore');
|
|
94
146
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":";;;AAAA,yCAA0C;AAa1C;;;;;;;;GAQG;AACU,QAAA,GAAG,GAAG,IAAA,yBAAa,EAAiB,YAAY,CAAC,CAAC;AAE/D;;;;;;;GAOG;AACU,QAAA,KAAK,GAAG,IAAA,yBAAa,EAAc,cAAc,CAAC,CAAC;AAEhE;;;;;;;GAOG;AACU,QAAA,MAAM,GAAG,IAAA,yBAAa,EAA4B,eAAe,CAAC,CAAC;AAEhF;;;;;;;GAOG;AACU,QAAA,KAAK,GAAG,IAAA,yBAAa,EAAc,cAAc,CAAC,CAAC;AAEhE;;;;;;;;GAQG;AACU,QAAA,WAAW,GAAG,IAAA,yBAAa,EAAU,oBAAoB,CAAC,CAAC;AAExE;;;;;;;;;;;;GAYG;AACU,QAAA,YAAY,GAAG,IAAA,yBAAa,EAAQ,qBAAqB,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;GAeG;AACU,QAAA,QAAQ,GAAG,IAAA,yBAAa,EAAsB,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAEpF;;;;;;;;;;;;;;GAcG;AACU,QAAA,WAAW,GAAG,IAAA,yBAAa,EAAW,iBAAiB,CAAC,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACU,QAAA,cAAc,GAAG,IAAA,yBAAa,EAAc,oBAAoB,CAAC,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AACU,QAAA,iBAAiB,GAAG,IAAA,yBAAa,EAAiB,uBAAuB,CAAC,CAAC;AAExF;;;;;;;;;;;;;;GAcG;AACU,QAAA,aAAa,GAAG,IAAA,yBAAa,EAAa,mBAAmB,CAAC,CAAC"}
|
|
@@ -20,8 +20,14 @@ export interface CreateAgentPoolOpts {
|
|
|
20
20
|
orchestrate: Orchestrator;
|
|
21
21
|
/** Data access tools (array, createToolkit called internally). Optional — pool degenerates cleanly without tools. */
|
|
22
22
|
tools?: Tool[];
|
|
23
|
-
/**
|
|
24
|
-
|
|
23
|
+
/**
|
|
24
|
+
* The tool that ends an agent's turn — `report`, `email`, whatever the
|
|
25
|
+
* harness designates. Passed by reference; the framework merges it into
|
|
26
|
+
* the tool set (so its schema reaches the model) and intercepts its
|
|
27
|
+
* call at the policy layer to extract the `result` arg as the agent's
|
|
28
|
+
* return value. Omit for pools that end on free-text/stop.
|
|
29
|
+
*/
|
|
30
|
+
terminal?: Tool;
|
|
25
31
|
/** Max tool-use turns per agent before hard cut. @default 100 */
|
|
26
32
|
maxTurns?: number;
|
|
27
33
|
/** Prune agent branches immediately when they voluntarily return, freeing KV mid-pool. */
|
|
@@ -84,9 +90,9 @@ export interface CreateAgentPoolOpts {
|
|
|
84
90
|
* @example Research harness
|
|
85
91
|
* ```typescript
|
|
86
92
|
* const pool = yield* agentPool({
|
|
87
|
-
* tools: [delegateTool, ...source.tools
|
|
93
|
+
* tools: [delegateTool, ...source.tools],
|
|
88
94
|
* orchestrate: parallel(questions.map(q => ({ content: q, systemPrompt: RESEARCH_PROMPT }))),
|
|
89
|
-
*
|
|
95
|
+
* terminal: reportTool,
|
|
90
96
|
* });
|
|
91
97
|
* ```
|
|
92
98
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-agent-pool.d.ts","sourceRoot":"","sources":["../src/create-agent-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQpD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,WAAW,EAAE,YAAY,CAAC;IAC1B,qHAAqH;IACrH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf
|
|
1
|
+
{"version":3,"file":"create-agent-pool.d.ts","sourceRoot":"","sources":["../src/create-agent-pool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQpD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,WAAW,EAAE,YAAY,CAAC;IAC1B,qHAAqH;IACrH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uDAAuD;IACvD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAiB,SAAS,CAAC,IAAI,EAAE,mBAAmB,GAAG,SAAS,CAAC,eAAe,CAAC,CAgEhF"}
|
|
@@ -17,9 +17,9 @@ const agent_pool_1 = require("./agent-pool");
|
|
|
17
17
|
* @example Research harness
|
|
18
18
|
* ```typescript
|
|
19
19
|
* const pool = yield* agentPool({
|
|
20
|
-
* tools: [delegateTool, ...source.tools
|
|
20
|
+
* tools: [delegateTool, ...source.tools],
|
|
21
21
|
* orchestrate: parallel(questions.map(q => ({ content: q, systemPrompt: RESEARCH_PROMPT }))),
|
|
22
|
-
*
|
|
22
|
+
* terminal: reportTool,
|
|
23
23
|
* });
|
|
24
24
|
* ```
|
|
25
25
|
*
|
|
@@ -27,7 +27,7 @@ const agent_pool_1 = require("./agent-pool");
|
|
|
27
27
|
*/
|
|
28
28
|
function* agentPool(opts) {
|
|
29
29
|
const broadcast = yield* context_1.Events.expect();
|
|
30
|
-
const toolkit = (0, toolkit_1.createToolkit)(opts.tools ?? []);
|
|
30
|
+
const toolkit = (0, toolkit_1.createToolkit)(opts.tools ?? [], opts.terminal);
|
|
31
31
|
// Warm path priority: explicit parent > session trunk > cold
|
|
32
32
|
const warmParent = opts.parent ?? opts.session?.trunk ?? undefined;
|
|
33
33
|
const sharedMode = opts.systemPrompt !== undefined;
|
|
@@ -36,8 +36,9 @@ function* agentPool(opts) {
|
|
|
36
36
|
systemPrompt: opts.systemPrompt,
|
|
37
37
|
// Only emit tool schemas into the spine header in shared mode; the
|
|
38
38
|
// dispatcher (toolkit.toolMap) is registered on the useAgentPool
|
|
39
|
-
// below regardless.
|
|
40
|
-
|
|
39
|
+
// below regardless. Use the toolkit's merged set so the terminal's
|
|
40
|
+
// schema rides the spine prefill alongside the capability tools.
|
|
41
|
+
tools: sharedMode ? toolkit.tools : undefined,
|
|
41
42
|
// Thread enableThinking so the spine header chat-format and the
|
|
42
43
|
// SpineFmt FormatConfig (parser/grammar/triggers) match what the
|
|
43
44
|
// per-agent suffixes get further down. Otherwise a caller passing
|
|
@@ -64,7 +65,7 @@ function* agentPool(opts) {
|
|
|
64
65
|
orchestrate: opts.orchestrate,
|
|
65
66
|
toolsJson: toolkit.toolsJson,
|
|
66
67
|
tools: toolkit.toolMap,
|
|
67
|
-
terminalToolName:
|
|
68
|
+
terminalToolName: toolkit.terminalName,
|
|
68
69
|
pruneOnReturn: opts.pruneOnReturn,
|
|
69
70
|
maxTurns: opts.maxTurns,
|
|
70
71
|
trace: opts.trace,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-agent-pool.js","sourceRoot":"","sources":["../src/create-agent-pool.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"create-agent-pool.js","sourceRoot":"","sources":["../src/create-agent-pool.ts"],"names":[],"mappings":";;AA8GA,8BAgEC;AAtKD,uCAAmC;AACnC,uCAA0C;AAC1C,mCAAoC;AACpC,6CAA4C;AA8E5C,+DAA+D;AAE/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,QAAe,CAAC,CAAC,SAAS,CAAC,IAAyB;IAClD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,gBAAM,CAAC,MAAM,EAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE/D,6DAA6D;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,SAAS,CAAC;IAEnE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC;IAEnD,OAAO,KAAK,CAAC,CAAC,IAAA,iBAAS,EACrB;QACE,MAAM,EAAE,UAAU;QAClB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,mEAAmE;QACnE,iEAAiE;QACjE,mEAAmE;QACnE,iEAAiE;QACjE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC7C,gEAAgE;QAChE,iEAAiE;QACjE,kEAAkE;QAClE,qEAAqE;QACrE,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,EACD,QAAQ,CAAC,EAAE,UAAU;QACnB,8DAA8D;QAC9D,mEAAmE;QACnE,qEAAqE;QACrE,mEAAmE;QACnE,sEAAsE;QACtE,EAAE;QACF,qEAAqE;QACrE,sEAAsE;QACtE,sEAAsE;QACtE,4DAA4D;QAC5D,+DAA+D;QAC/D,iEAAiE;QACjE,gEAAgE;QAChE,iCAAiC;QACjC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC;QACnE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,IAAA,yBAAY,EAAC;YAC9B,KAAK;YACL,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,gBAAgB,EAAE,OAAO,CAAC,YAAY;YACtC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CAAC;QAEH,oEAAoE;QACpE,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `GrantStore` — pluggable runtime store for protected-tool grants.
|
|
3
|
+
*
|
|
4
|
+
* A **grant** authorizes the current session to invoke a `protected` tool
|
|
5
|
+
* (see {@link Tool.protected}). The framework's authGuard denies any
|
|
6
|
+
* protected tool call whose name is not granted. Grants are obtained via
|
|
7
|
+
* consent — a harness consent prompt, or an app's {@link ConfigFlow}
|
|
8
|
+
* OAuth-style handoff — and the **credential itself never enters the
|
|
9
|
+
* model's context**: the model only triggers the call; the runtime holds
|
|
10
|
+
* the grant and the tool's `execute` uses the underlying secret.
|
|
11
|
+
*
|
|
12
|
+
* The interface lives in `@lloyal-labs/lloyal-agents` so the framework
|
|
13
|
+
* context ({@link GrantStoreCtx}) and app/harness code share one type
|
|
14
|
+
* without a dependency cycle. The concrete in-memory implementation
|
|
15
|
+
* (`createGrantStore`) and harness-supplied backends live in rig and
|
|
16
|
+
* harness packages — mirroring {@link AppConfigStore} /
|
|
17
|
+
* `createInMemoryConfigStore`.
|
|
18
|
+
*
|
|
19
|
+
* **Semantics:**
|
|
20
|
+
*
|
|
21
|
+
* - **Binary per tool.** A grant is keyed by tool name; either the session
|
|
22
|
+
* holds it or it doesn't. No scopes, no expiry in the base contract —
|
|
23
|
+
* richer policies are a harness concern.
|
|
24
|
+
* - **Fail-closed.** With no grant store on {@link GrantStoreCtx}, no grants
|
|
25
|
+
* exist: every protected tool is denied. Open (non-protected) tools are
|
|
26
|
+
* unaffected.
|
|
27
|
+
*
|
|
28
|
+
* @packageDocumentation
|
|
29
|
+
* @category Contract
|
|
30
|
+
*/
|
|
31
|
+
import type { Operation } from 'effection';
|
|
32
|
+
/**
|
|
33
|
+
* Pluggable runtime store of protected-tool grants for a session.
|
|
34
|
+
*
|
|
35
|
+
* All methods return `Operation<...>` (Effection generators) so concrete
|
|
36
|
+
* implementations can perform async IO (reading a secrets backend,
|
|
37
|
+
* checking a remote authorization service) inside the framework's scope.
|
|
38
|
+
*/
|
|
39
|
+
export interface GrantStore {
|
|
40
|
+
/** Whether the session currently holds a grant for `toolName`. */
|
|
41
|
+
has(toolName: string): Operation<boolean>;
|
|
42
|
+
/** Record consent for `toolName` (the session may now call it). Idempotent. */
|
|
43
|
+
grant(toolName: string): Operation<void>;
|
|
44
|
+
/** Revoke a previously-granted tool. Idempotent. */
|
|
45
|
+
revoke(toolName: string): Operation<void>;
|
|
46
|
+
/** Snapshot of all granted tool names — the synchronous gate the pool reads. */
|
|
47
|
+
granted(): Operation<readonly string[]>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=grant-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grant-store.d.ts","sourceRoot":"","sources":["../src/grant-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAC1C,+EAA+E;IAC/E,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACzC,oDAAoD;IACpD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,gFAAgF;IAChF,OAAO,IAAI,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CACzC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `GrantStore` — pluggable runtime store for protected-tool grants.
|
|
4
|
+
*
|
|
5
|
+
* A **grant** authorizes the current session to invoke a `protected` tool
|
|
6
|
+
* (see {@link Tool.protected}). The framework's authGuard denies any
|
|
7
|
+
* protected tool call whose name is not granted. Grants are obtained via
|
|
8
|
+
* consent — a harness consent prompt, or an app's {@link ConfigFlow}
|
|
9
|
+
* OAuth-style handoff — and the **credential itself never enters the
|
|
10
|
+
* model's context**: the model only triggers the call; the runtime holds
|
|
11
|
+
* the grant and the tool's `execute` uses the underlying secret.
|
|
12
|
+
*
|
|
13
|
+
* The interface lives in `@lloyal-labs/lloyal-agents` so the framework
|
|
14
|
+
* context ({@link GrantStoreCtx}) and app/harness code share one type
|
|
15
|
+
* without a dependency cycle. The concrete in-memory implementation
|
|
16
|
+
* (`createGrantStore`) and harness-supplied backends live in rig and
|
|
17
|
+
* harness packages — mirroring {@link AppConfigStore} /
|
|
18
|
+
* `createInMemoryConfigStore`.
|
|
19
|
+
*
|
|
20
|
+
* **Semantics:**
|
|
21
|
+
*
|
|
22
|
+
* - **Binary per tool.** A grant is keyed by tool name; either the session
|
|
23
|
+
* holds it or it doesn't. No scopes, no expiry in the base contract —
|
|
24
|
+
* richer policies are a harness concern.
|
|
25
|
+
* - **Fail-closed.** With no grant store on {@link GrantStoreCtx}, no grants
|
|
26
|
+
* exist: every protected tool is denied. Open (non-protected) tools are
|
|
27
|
+
* unaffected.
|
|
28
|
+
*
|
|
29
|
+
* @packageDocumentation
|
|
30
|
+
* @category Contract
|
|
31
|
+
*/
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
//# sourceMappingURL=grant-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grant-store.js","sourceRoot":"","sources":["../src/grant-store.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { Ctx, Store, Events, Trace, TraceParent,
|
|
2
|
-
export { Tool } from './Tool';
|
|
1
|
+
export { Ctx, Store, Events, Trace, TraceParent, RerankerCtx, AppRegistryCtx, AppConfigStoreCtx, GrantStoreCtx, } from './context';
|
|
2
|
+
export { Tool, ToolRetryError } from './Tool';
|
|
3
3
|
export { Agent } from './Agent';
|
|
4
4
|
export type { AgentStatus, ResultSource, FormatConfig, ToolHistoryEntry } from './Agent';
|
|
5
5
|
export { DefaultAgentPolicy } from './AgentPolicy';
|
|
6
|
-
export type { AgentPolicy, ProduceAction, SettleAction, RecoveryAction, IdleReason, PolicyConfig, ToolGuard, DefaultAgentPolicyOpts } from './AgentPolicy';
|
|
6
|
+
export type { AgentPolicy, ProduceAction, SettleAction, RecoveryAction, ToolRetryAction, IdleReason, PolicyConfig, ToolGuard, DefaultAgentPolicyOpts } from './AgentPolicy';
|
|
7
7
|
export { defaultToolGuards } from './AgentPolicy';
|
|
8
8
|
export { CallingAgent } from './context';
|
|
9
9
|
export { Source, NULL_SCORER } from './source';
|
|
@@ -33,4 +33,8 @@ export type { TraceEvent, TraceId } from './trace-types';
|
|
|
33
33
|
export type { AgentHandle } from './init';
|
|
34
34
|
export type { SpineOptions } from './spine';
|
|
35
35
|
export type { TraceToken, JsonSchema, ToolSchema, ToolContext, PressureThresholds, AgentTaskSpec, AgentPoolOptions, AgentResult, AgentPoolResult, DivergeOptions, DivergeAttempt, DivergeResult, AgentEvent, } from './types';
|
|
36
|
+
export type { App, AppManifest, AppProtocol, AppHints, AppRegistry, AppFactory, AppState, AgentRenderCtx, ExamplesRenderCtx, SkillTemplateFn, ExamplesTemplateFn, ConfigFlow, } from './app-types';
|
|
37
|
+
export type { AppConfigStore } from './app-config';
|
|
38
|
+
export type { GrantStore } from './grant-store';
|
|
39
|
+
export type { Resource, Chunk, ScoredChunk, ScoredResult, Reranker } from './chunk';
|
|
36
40
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.reconstructBranch = exports.extractSpineCheckpoint = exports.extractSpineSeed = exports.dag = exports.fanout = exports.chain = exports.parallel = exports.reduce = exports.renderTemplate = exports.renderPrompt = exports.composePrompt = exports.traceScope = exports.JsonlTraceWriter = exports.NullTraceWriter = exports.withSpine = exports.initAgents = exports.createToolkit = exports.ContextPressure = exports.useAgentPool = exports.diverge = exports.agentPool = exports.agent = exports.useAgent = exports.buildToolResultDelta = exports.buildUserDelta = exports.NULL_SCORER = exports.Source = exports.CallingAgent = exports.defaultToolGuards = exports.DefaultAgentPolicy = exports.Agent = exports.Tool = exports.
|
|
3
|
+
exports.reconstructBranch = exports.extractSpineCheckpoint = exports.extractSpineSeed = exports.dag = exports.fanout = exports.chain = exports.parallel = exports.reduce = exports.renderTemplate = exports.renderPrompt = exports.composePrompt = exports.traceScope = exports.JsonlTraceWriter = exports.NullTraceWriter = exports.withSpine = exports.initAgents = exports.createToolkit = exports.ContextPressure = exports.useAgentPool = exports.diverge = exports.agentPool = exports.agent = exports.useAgent = exports.buildToolResultDelta = exports.buildUserDelta = exports.NULL_SCORER = exports.Source = exports.CallingAgent = exports.defaultToolGuards = exports.DefaultAgentPolicy = exports.Agent = exports.ToolRetryError = exports.Tool = exports.GrantStoreCtx = exports.AppConfigStoreCtx = exports.AppRegistryCtx = exports.RerankerCtx = exports.TraceParent = exports.Trace = exports.Events = exports.Store = exports.Ctx = void 0;
|
|
4
4
|
var context_1 = require("./context");
|
|
5
5
|
Object.defineProperty(exports, "Ctx", { enumerable: true, get: function () { return context_1.Ctx; } });
|
|
6
6
|
Object.defineProperty(exports, "Store", { enumerable: true, get: function () { return context_1.Store; } });
|
|
7
7
|
Object.defineProperty(exports, "Events", { enumerable: true, get: function () { return context_1.Events; } });
|
|
8
8
|
Object.defineProperty(exports, "Trace", { enumerable: true, get: function () { return context_1.Trace; } });
|
|
9
9
|
Object.defineProperty(exports, "TraceParent", { enumerable: true, get: function () { return context_1.TraceParent; } });
|
|
10
|
-
Object.defineProperty(exports, "
|
|
10
|
+
Object.defineProperty(exports, "RerankerCtx", { enumerable: true, get: function () { return context_1.RerankerCtx; } });
|
|
11
|
+
Object.defineProperty(exports, "AppRegistryCtx", { enumerable: true, get: function () { return context_1.AppRegistryCtx; } });
|
|
12
|
+
Object.defineProperty(exports, "AppConfigStoreCtx", { enumerable: true, get: function () { return context_1.AppConfigStoreCtx; } });
|
|
13
|
+
Object.defineProperty(exports, "GrantStoreCtx", { enumerable: true, get: function () { return context_1.GrantStoreCtx; } });
|
|
11
14
|
var Tool_1 = require("./Tool");
|
|
12
15
|
Object.defineProperty(exports, "Tool", { enumerable: true, get: function () { return Tool_1.Tool; } });
|
|
16
|
+
Object.defineProperty(exports, "ToolRetryError", { enumerable: true, get: function () { return Tool_1.ToolRetryError; } });
|
|
13
17
|
var Agent_1 = require("./Agent");
|
|
14
18
|
Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return Agent_1.Agent; } });
|
|
15
19
|
var AgentPolicy_1 = require("./AgentPolicy");
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAUmB;AATjB,8FAAA,GAAG,OAAA;AACH,gGAAA,KAAK,OAAA;AACL,iGAAA,MAAM,OAAA;AACN,gGAAA,KAAK,OAAA;AACL,sGAAA,WAAW,OAAA;AACX,sGAAA,WAAW,OAAA;AACX,yGAAA,cAAc,OAAA;AACd,4GAAA,iBAAiB,OAAA;AACjB,wGAAA,aAAa,OAAA;AAEf,+BAA8C;AAArC,4FAAA,IAAI,OAAA;AAAE,sGAAA,cAAc,OAAA;AAC7B,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd,6CAAmD;AAA1C,iHAAA,kBAAkB,OAAA;AAE3B,6CAAkD;AAAzC,gHAAA,iBAAiB,OAAA;AAC1B,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AACrB,mCAA+C;AAAtC,gGAAA,MAAM,OAAA;AAAE,qGAAA,WAAW,OAAA;AAE5B,wCAAwE;AAA/D,qGAAA,cAAc,OAAA;AAAE,2GAAA,oBAAoB,OAAA;AAC7C,yCAA8C;AAArC,qGAAA,QAAQ,OAAA;AAAE,kGAAA,KAAK,OAAA;AAExB,yDAAgD;AAAvC,8GAAA,SAAS,OAAA;AAElB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,2CAA6D;AAApD,0GAAA,YAAY,OAAA;AAAE,6GAAA,eAAe,OAAA;AACtC,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AACtB,+BAAoC;AAA3B,kGAAA,UAAU,OAAA;AACnB,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAClB,+CAAmE;AAA1D,+GAAA,eAAe,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAC1C,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,mCAAuE;AAA9D,uGAAA,aAAa,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,wGAAA,cAAc,OAAA;AAEpD,6CAAuC;AAA9B,qGAAA,MAAM,OAAA;AACf,iDAA+D;AAAtD,yGAAA,QAAQ,OAAA;AAAE,sGAAA,KAAK,OAAA;AAAE,uGAAA,MAAM,OAAA;AAAE,oGAAA,GAAG,OAAA;AAErC,mCAAuF;AAA9E,0GAAA,gBAAgB,OAAA;AAAE,gHAAA,sBAAsB,OAAA;AAAE,2GAAA,iBAAiB,OAAA"}
|
package/dist/orchestrators.d.ts
CHANGED
|
@@ -16,6 +16,13 @@ export interface SpawnSpec {
|
|
|
16
16
|
seed?: number;
|
|
17
17
|
/** Parent branch to fork from. Falls back to ctx.spine. */
|
|
18
18
|
parent?: Branch;
|
|
19
|
+
/**
|
|
20
|
+
* Non-enforcing label naming the App this spawn nominally belongs to
|
|
21
|
+
* Carried for trace attribution (`tool:authReject`) and
|
|
22
|
+
* harness UI only — tool access is gated by {@link Tool.protected} +
|
|
23
|
+
* session grants (the authGuard), not by app membership.
|
|
24
|
+
*/
|
|
25
|
+
assignedApp?: string;
|
|
19
26
|
}
|
|
20
27
|
/**
|
|
21
28
|
* Orchestrator-facing API surface exposed by {@link useAgentPool}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrators.d.ts","sourceRoot":"","sources":["../src/orchestrators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAQ,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrators.d.ts","sourceRoot":"","sources":["../src/orchestrators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAQ,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,6FAA6F;IAC7F,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEzC,0FAA0F;IAC1F,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAExC;;;OAGG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9E,oFAAoF;IACpF,MAAM,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC;CAChD;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;AAIjE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,SAAS,EAAE,KAAG,YAI3C,CAAC;AAEJ;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EACrB,OAAO,CAAC,EAAE,EACV,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,KAC5C,YAaA,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,MAAM,GAAI,WAAW,SAAS,EAAE,SAAS,SAAS,EAAE,KAAG,YAajE,CAAC;AAEJ;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,GAAG,GAAI,OAAO,OAAO,EAAE,KAAG,YA0CtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrators.js","sourceRoot":"","sources":["../src/orchestrators.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;
|
|
1
|
+
{"version":3,"file":"orchestrators.js","sourceRoot":"","sources":["../src/orchestrators.ts"],"names":[],"mappings":"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"}
|
package/dist/source.d.ts
CHANGED
|
@@ -69,7 +69,21 @@ export declare abstract class Source<TCtx = unknown, TChunk = unknown> {
|
|
|
69
69
|
abstract get tools(): Tool[];
|
|
70
70
|
/** Reranker instance, set during {@link bind}. Used by {@link createScorer}. */
|
|
71
71
|
protected _reranker: ScorerReranker | null;
|
|
72
|
-
/**
|
|
72
|
+
/**
|
|
73
|
+
* Minimum entailment score for delegation to proceed.
|
|
74
|
+
*
|
|
75
|
+
* Reranker scores are logit-diffs (`logit(yes) − logit(no)`); a value
|
|
76
|
+
* `> 0` means the cross-encoder model prefers "yes" over "no" when
|
|
77
|
+
* asked whether the document matches the query. Default `0` ⇒ "the
|
|
78
|
+
* model agrees this passage is relevant"; subclasses may tighten
|
|
79
|
+
* (e.g. `2` for "confident yes") or loosen (negative, for noisy
|
|
80
|
+
* corpora where leaning-no hits are still worth investigating).
|
|
81
|
+
*
|
|
82
|
+
* The prior softmax-prob default was `0.25`, which corresponded to
|
|
83
|
+
* logit-diff `≈ −1.1`. The new default is stricter: only hits the
|
|
84
|
+
* model genuinely leans toward are surfaced. See TICK-002 calibration
|
|
85
|
+
* notes (`reasoning.run/scripts/inspect-rerank.mjs`) for the data.
|
|
86
|
+
*/
|
|
73
87
|
protected _entailmentFloor: number;
|
|
74
88
|
/**
|
|
75
89
|
* Create an immutable entailment scorer scoped to one invocation.
|
|
@@ -85,5 +99,21 @@ export declare abstract class Source<TCtx = unknown, TChunk = unknown> {
|
|
|
85
99
|
bind(_ctx: TCtx): Operation<void>;
|
|
86
100
|
/** Post-use chunks for reranking. Called after agents have used the tools. */
|
|
87
101
|
getChunks(): TChunk[];
|
|
102
|
+
/**
|
|
103
|
+
* App-level prompt data (e.g. a corpus TOC) for the HARNESS to place.
|
|
104
|
+
*
|
|
105
|
+
* Identical for every agent in a pool, so it belongs in shared KV —
|
|
106
|
+
* rendered ONCE, not duplicated per spawn (six 4.8k-token TOC-bearing
|
|
107
|
+
* suffixes overran a 32k context before this contract existed).
|
|
108
|
+
*
|
|
109
|
+
* Placement is a TRUST decision, which is why the framework does not
|
|
110
|
+
* place it automatically: this is free prose derived from source
|
|
111
|
+
* content, and the shared spine prefix is read by every agent in the
|
|
112
|
+
* pool. A harness may append it to its spine prompt for apps it trusts
|
|
113
|
+
* (first-party corpora); it must not blanket-append data from untrusted
|
|
114
|
+
* third-party apps — `renderSpine` itself stays prose-free for exactly
|
|
115
|
+
* this reason.
|
|
116
|
+
*/
|
|
117
|
+
promptData(): Record<string, unknown>;
|
|
88
118
|
}
|
|
89
119
|
//# sourceMappingURL=source.d.ts.map
|
package/dist/source.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,+EAA+E;IAC/E,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,4EAA4E;IAC5E,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACvC;AAED,sFAAsF;AACtF,eAAO,MAAM,WAAW,EAAE,gBAKzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,8BAAsB,MAAM,CAAC,IAAI,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO;IAC3D,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,gDAAgD;IAChD,QAAQ,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC;IAE7B,gFAAgF;IAChF,SAAS,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAQ;IAClD
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,+EAA+E;IAC/E,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,4EAA4E;IAC5E,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACvC;AAED,sFAAsF;AACtF,eAAO,MAAM,WAAW,EAAE,gBAKzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;GAWG;AACH,8BAAsB,MAAM,CAAC,IAAI,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO;IAC3D,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAC/B,gDAAgD;IAChD,QAAQ,KAAK,KAAK,IAAI,IAAI,EAAE,CAAC;IAE7B,gFAAgF;IAChF,SAAS,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAQ;IAClD;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAK;IAEvC;;;;;;;;OAQG;IACH,YAAY,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB;IA0BrD,0FAA0F;IACzF,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAElC,8EAA8E;IAC9E,SAAS,IAAI,MAAM,EAAE;IAErB;;;;;;;;;;;;;;OAcG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CACtC"}
|
package/dist/source.js
CHANGED
|
@@ -23,8 +23,22 @@ exports.NULL_SCORER = {
|
|
|
23
23
|
class Source {
|
|
24
24
|
/** Reranker instance, set during {@link bind}. Used by {@link createScorer}. */
|
|
25
25
|
_reranker = null;
|
|
26
|
-
/**
|
|
27
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Minimum entailment score for delegation to proceed.
|
|
28
|
+
*
|
|
29
|
+
* Reranker scores are logit-diffs (`logit(yes) − logit(no)`); a value
|
|
30
|
+
* `> 0` means the cross-encoder model prefers "yes" over "no" when
|
|
31
|
+
* asked whether the document matches the query. Default `0` ⇒ "the
|
|
32
|
+
* model agrees this passage is relevant"; subclasses may tighten
|
|
33
|
+
* (e.g. `2` for "confident yes") or loosen (negative, for noisy
|
|
34
|
+
* corpora where leaning-no hits are still worth investigating).
|
|
35
|
+
*
|
|
36
|
+
* The prior softmax-prob default was `0.25`, which corresponded to
|
|
37
|
+
* logit-diff `≈ −1.1`. The new default is stricter: only hits the
|
|
38
|
+
* model genuinely leans toward are surfaced. See TICK-002 calibration
|
|
39
|
+
* notes (`reasoning.run/scripts/inspect-rerank.mjs`) for the data.
|
|
40
|
+
*/
|
|
41
|
+
_entailmentFloor = 0;
|
|
28
42
|
/**
|
|
29
43
|
* Create an immutable entailment scorer scoped to one invocation.
|
|
30
44
|
*
|
|
@@ -62,6 +76,22 @@ class Source {
|
|
|
62
76
|
*bind(_ctx) { }
|
|
63
77
|
/** Post-use chunks for reranking. Called after agents have used the tools. */
|
|
64
78
|
getChunks() { return []; }
|
|
79
|
+
/**
|
|
80
|
+
* App-level prompt data (e.g. a corpus TOC) for the HARNESS to place.
|
|
81
|
+
*
|
|
82
|
+
* Identical for every agent in a pool, so it belongs in shared KV —
|
|
83
|
+
* rendered ONCE, not duplicated per spawn (six 4.8k-token TOC-bearing
|
|
84
|
+
* suffixes overran a 32k context before this contract existed).
|
|
85
|
+
*
|
|
86
|
+
* Placement is a TRUST decision, which is why the framework does not
|
|
87
|
+
* place it automatically: this is free prose derived from source
|
|
88
|
+
* content, and the shared spine prefix is read by every agent in the
|
|
89
|
+
* pool. A harness may append it to its spine prompt for apps it trusts
|
|
90
|
+
* (first-party corpora); it must not blanket-append data from untrusted
|
|
91
|
+
* third-party apps — `renderSpine` itself stays prose-free for exactly
|
|
92
|
+
* this reason.
|
|
93
|
+
*/
|
|
94
|
+
promptData() { return {}; }
|
|
65
95
|
}
|
|
66
96
|
exports.Source = Source;
|
|
67
97
|
//# sourceMappingURL=source.js.map
|
package/dist/source.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":";;;AA2CA,sFAAsF;AACzE,QAAA,WAAW,GAAqB;IAC3C,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACzD,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/D,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI;CAC1B,CAAC;AAYF;;;;;;;;;;;GAWG;AACH,MAAsB,MAAM;IAM1B,gFAAgF;IACtE,SAAS,GAA0B,IAAI,CAAC;IAClD
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":";;;AA2CA,sFAAsF;AACzE,QAAA,WAAW,GAAqB;IAC3C,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACzD,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/D,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI;CAC1B,CAAC;AAYF;;;;;;;;;;;GAWG;AACH,MAAsB,MAAM;IAM1B,gFAAgF;IACtE,SAAS,GAA0B,IAAI,CAAC;IAClD;;;;;;;;;;;;;;OAcG;IACO,gBAAgB,GAAW,CAAC,CAAC;IAEvC;;;;;;;;OAQG;IACH,YAAY,CAAC,aAAqB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAa;YAAE,OAAO,mBAAW,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACpC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEvE,OAAO;YACL,KAAK,CAAC,oBAAoB,CAAC,KAAe;gBACxC,OAAO,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACnD,CAAC;YACD,KAAK,CAAC,mBAAmB,CAAC,KAAe,EAAE,UAAkB;gBAC3D,oEAAoE;gBACpE,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBACnE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBACjE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,KAAK,CAAC,oBAAoB,CAAC,SAAiB,EAAE,KAAe;gBAC3D,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;YACD,aAAa,CAAC,KAAa;gBACzB,OAAO,KAAK,IAAI,KAAK,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,0FAA0F;IAC1F,CAAC,IAAI,CAAC,IAAU,IAAoB,CAAC;IAErC,8EAA8E;IAC9E,SAAS,KAAe,OAAO,EAAE,CAAC,CAAC,CAAC;IAEpC;;;;;;;;;;;;;;OAcG;IACH,UAAU,KAA8B,OAAO,EAAE,CAAC,CAAC,CAAC;CACrD;AAlFD,wBAkFC"}
|
package/dist/spine.d.ts
CHANGED
|
@@ -10,12 +10,6 @@ import type { SamplingParams } from "./types";
|
|
|
10
10
|
export interface SpineOptions {
|
|
11
11
|
/** Sampling parameters for the spine branch */
|
|
12
12
|
params?: SamplingParams;
|
|
13
|
-
/**
|
|
14
|
-
* Set ScratchpadParent context so tools can fork from the spine
|
|
15
|
-
* for scratchpad extraction (fork-attend-extract-prune pattern).
|
|
16
|
-
* @default false
|
|
17
|
-
*/
|
|
18
|
-
enableScratchpad?: boolean;
|
|
19
13
|
/**
|
|
20
14
|
* Fork the spine from this branch instead of creating at position 0.
|
|
21
15
|
*
|
package/dist/spine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spine.d.ts","sourceRoot":"","sources":["../src/spine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB
|
|
1
|
+
{"version":3,"file":"spine.d.ts","sourceRoot":"","sources":["../src/spine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAiB,SAAS,CAAC,CAAC,EAC1B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAC1D,SAAS,CAAC,CAAC,CAAC,CAyId"}
|
package/dist/spine.js
CHANGED
|
@@ -107,6 +107,24 @@ function* withSpine(opts, body) {
|
|
|
107
107
|
}
|
|
108
108
|
const formatted = ctx.formatChatSync(messages, fmtOpts);
|
|
109
109
|
const headerTokens = ctx.tokenizeSync(formatted.prompt, false);
|
|
110
|
+
// Spine-seed emission for trace replay (`extractSpineSeed`). Captures
|
|
111
|
+
// the rendered chat prompt verbatim so a later `reconstructBranch`
|
|
112
|
+
// can rebuild this exact KV state in a fresh context. The token-count
|
|
113
|
+
// `branch:prefill` below is informational; the spine seed is the
|
|
114
|
+
// prompt text on this event.
|
|
115
|
+
tw.write({
|
|
116
|
+
traceId: tw.nextId(),
|
|
117
|
+
parentTraceId: scope.traceId,
|
|
118
|
+
ts: performance.now(),
|
|
119
|
+
type: "prompt:format",
|
|
120
|
+
promptText: formatted.prompt,
|
|
121
|
+
tokenCount: headerTokens.length,
|
|
122
|
+
messages,
|
|
123
|
+
tools: opts.tools && opts.tools.length > 0
|
|
124
|
+
? (0, toolkit_1.createToolkit)(opts.tools).toolsJson
|
|
125
|
+
: undefined,
|
|
126
|
+
role: "spine",
|
|
127
|
+
});
|
|
110
128
|
if (headerTokens.length > 0) {
|
|
111
129
|
yield* (0, effection_1.call)(() => spine.prefill(headerTokens));
|
|
112
130
|
tw.write({
|
|
@@ -131,8 +149,6 @@ function* withSpine(opts, body) {
|
|
|
131
149
|
};
|
|
132
150
|
}
|
|
133
151
|
try {
|
|
134
|
-
if (opts.enableScratchpad)
|
|
135
|
-
yield* context_1.ScratchpadParent.set(spine);
|
|
136
152
|
if (spineFmt)
|
|
137
153
|
yield* context_1.SpineFmt.set(spineFmt);
|
|
138
154
|
return yield* body(spine, prefillTokens.length);
|
package/dist/spine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spine.js","sourceRoot":"","sources":["../src/spine.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"spine.js","sourceRoot":"","sources":["../src/spine.ts"],"names":[],"mappings":"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"}
|