@adonis-agora/agent 0.55.0 → 0.57.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/CHANGELOG.md +57 -0
- package/dist/providers/agent_provider.d.ts.map +1 -1
- package/dist/providers/agent_provider.js +84 -10
- package/dist/providers/agent_provider.js.map +1 -1
- package/dist/src/ag-ui/adapter.d.ts.map +1 -1
- package/dist/src/ag-ui/adapter.js +1 -2
- package/dist/src/ag-ui/adapter.js.map +1 -1
- package/dist/src/ag-ui/encoder.d.ts +7 -92
- package/dist/src/ag-ui/encoder.d.ts.map +1 -1
- package/dist/src/ag-ui/encoder.js +14 -498
- package/dist/src/ag-ui/encoder.js.map +1 -1
- package/dist/src/ag-ui/frames.d.ts +17 -0
- package/dist/src/ag-ui/frames.d.ts.map +1 -0
- package/dist/src/ag-ui/frames.js +69 -0
- package/dist/src/ag-ui/frames.js.map +1 -0
- package/dist/src/ag-ui/index.d.ts +9 -6
- package/dist/src/ag-ui/index.d.ts.map +1 -1
- package/dist/src/ag-ui/index.js +9 -6
- package/dist/src/ag-ui/index.js.map +1 -1
- package/dist/src/ag-ui/stream.d.ts +7 -23
- package/dist/src/ag-ui/stream.d.ts.map +1 -1
- package/dist/src/ag-ui/stream.js +9 -64
- package/dist/src/ag-ui/stream.js.map +1 -1
- package/dist/src/agent-service.d.ts +22 -0
- package/dist/src/agent-service.d.ts.map +1 -1
- package/dist/src/agent-service.js +57 -5
- package/dist/src/agent-service.js.map +1 -1
- package/dist/src/ai-tool-ref.d.ts +26 -4
- package/dist/src/ai-tool-ref.d.ts.map +1 -1
- package/dist/src/ai-tool-ref.js +6 -1
- package/dist/src/ai-tool-ref.js.map +1 -1
- package/dist/src/confirmed-tool.d.ts +2 -2
- package/dist/src/confirmed-tool.d.ts.map +1 -1
- package/dist/src/confirmed-tool.js.map +1 -1
- package/dist/src/guardrails/agent.d.ts.map +1 -1
- package/dist/src/guardrails/agent.js +11 -0
- package/dist/src/guardrails/agent.js.map +1 -1
- package/dist/src/index.d.ts +4 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp-client/options.d.ts +12 -0
- package/dist/src/mcp-client/options.d.ts.map +1 -1
- package/dist/src/mcp-client/tool-source.d.ts.map +1 -1
- package/dist/src/mcp-client/tool-source.js +2 -0
- package/dist/src/mcp-client/tool-source.js.map +1 -1
- package/dist/src/media/index.d.ts +1 -1
- package/dist/src/media/index.d.ts.map +1 -1
- package/dist/src/media/index.js +1 -1
- package/dist/src/media/index.js.map +1 -1
- package/dist/src/media/media-attachment-staging.d.ts +107 -6
- package/dist/src/media/media-attachment-staging.d.ts.map +1 -1
- package/dist/src/media/media-attachment-staging.js +173 -21
- package/dist/src/media/media-attachment-staging.js.map +1 -1
- package/dist/src/react/ag-ui.d.ts +41 -0
- package/dist/src/react/ag-ui.d.ts.map +1 -0
- package/dist/src/react/ag-ui.js +63 -0
- package/dist/src/react/ag-ui.js.map +1 -0
- package/dist/src/react/client.d.ts +12 -0
- package/dist/src/react/client.d.ts.map +1 -0
- package/dist/src/react/client.js +21 -0
- package/dist/src/react/client.js.map +1 -0
- package/dist/src/react/index.d.ts +3 -8
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/react/index.js +4 -20
- package/dist/src/react/index.js.map +1 -1
- package/dist/src/react/media.d.ts +18 -0
- package/dist/src/react/media.d.ts.map +1 -0
- package/dist/src/react/media.js +18 -0
- package/dist/src/react/media.js.map +1 -0
- package/dist/src/spi/agent-store.d.ts +22 -0
- package/dist/src/spi/agent-store.d.ts.map +1 -1
- package/dist/src/spi/agent-store.js.map +1 -1
- package/dist/src/spi/attachment-staging.d.ts +5 -0
- package/dist/src/spi/attachment-staging.d.ts.map +1 -1
- package/dist/src/spi/tool.d.ts +24 -0
- package/dist/src/spi/tool.d.ts.map +1 -1
- package/dist/src/stores/factory.d.ts +8 -2
- package/dist/src/stores/factory.d.ts.map +1 -1
- package/dist/src/stores/factory.js +8 -2
- package/dist/src/stores/factory.js.map +1 -1
- package/dist/src/stores/lucid-schema.d.ts.map +1 -1
- package/dist/src/stores/lucid-schema.js +2 -0
- package/dist/src/stores/lucid-schema.js.map +1 -1
- package/dist/src/stores/lucid.d.ts +12 -0
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +47 -0
- package/dist/src/stores/lucid.js.map +1 -1
- package/dist/src/testing/in-memory-store.d.ts +7 -0
- package/dist/src/testing/in-memory-store.d.ts.map +1 -1
- package/dist/src/testing/in-memory-store.js +33 -0
- package/dist/src/testing/in-memory-store.js.map +1 -1
- package/dist/src/tool-discovery.d.ts.map +1 -1
- package/dist/src/tool-discovery.js +27 -9
- package/dist/src/tool-discovery.js.map +1 -1
- package/dist/src/tool-filters.d.ts +33 -0
- package/dist/src/tool-filters.d.ts.map +1 -0
- package/dist/src/tool-filters.js +45 -0
- package/dist/src/tool-filters.js.map +1 -0
- package/dist/src/tool-registry.d.ts +33 -5
- package/dist/src/tool-registry.d.ts.map +1 -1
- package/dist/src/tool-registry.js +55 -11
- package/dist/src/tool-registry.js.map +1 -1
- package/dist/src/types.d.ts +16 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +15 -5
- package/skills/agent-tools/SKILL.md +19 -1
- package/dist/src/ag-ui/input.d.ts +0 -72
- package/dist/src/ag-ui/input.d.ts.map +0 -1
- package/dist/src/ag-ui/input.js +0 -216
- package/dist/src/ag-ui/input.js.map +0 -1
- package/dist/src/ag-ui/interrupt-id.d.ts +0 -27
- package/dist/src/ag-ui/interrupt-id.d.ts.map +0 -1
- package/dist/src/ag-ui/interrupt-id.js +0 -42
- package/dist/src/ag-ui/interrupt-id.js.map +0 -1
- package/dist/src/ag-ui/types.d.ts +0 -202
- package/dist/src/ag-ui/types.d.ts.map +0 -1
- package/dist/src/ag-ui/types.js +0 -33
- package/dist/src/ag-ui/types.js.map +0 -1
|
@@ -27,15 +27,18 @@ export function registerToolExport(registry, exported, defaultRoles, app) {
|
|
|
27
27
|
if (registry.has(meta.name)) {
|
|
28
28
|
return null;
|
|
29
29
|
}
|
|
30
|
+
// `isEnabled()` / `canUse()` / `describe()` live on the tool CLASS, while the registry holds the
|
|
31
|
+
// wrapper built here. Each is forwarded only when the class declares it — a gate left behind on
|
|
32
|
+
// the class would be one an app declares, sees no error for, and that never runs.
|
|
33
|
+
const declares = (method) => typeof proto?.[method] === 'function';
|
|
34
|
+
let resolveInstance;
|
|
30
35
|
if (app === undefined) {
|
|
31
36
|
// No container: instantiate now (no DI); skip if construction throws — pre-DI behavior.
|
|
32
37
|
const instance = instantiate(cls);
|
|
33
38
|
if (instance === null) {
|
|
34
39
|
return null;
|
|
35
40
|
}
|
|
36
|
-
|
|
37
|
-
execute: (input, ctx) => instance.execute(input, ctx),
|
|
38
|
-
});
|
|
41
|
+
resolveInstance = () => Promise.resolve(instance);
|
|
39
42
|
}
|
|
40
43
|
else {
|
|
41
44
|
// Container DI: resolve the tool (and its `@inject`'d deps) through the IoC container — the
|
|
@@ -43,13 +46,27 @@ export function registerToolExport(registry, exported, defaultRoles, app) {
|
|
|
43
46
|
// `boot()`, before the app is fully booted, so an eager `container.make()` could fail resolving
|
|
44
47
|
// a peer service — the same reason the Lucid store factory resolves lazily.
|
|
45
48
|
let instancePromise;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
},
|
|
51
|
-
});
|
|
49
|
+
resolveInstance = () => {
|
|
50
|
+
instancePromise ??= app.container.make(cls);
|
|
51
|
+
return instancePromise;
|
|
52
|
+
};
|
|
52
53
|
}
|
|
54
|
+
const handler = {
|
|
55
|
+
execute: async (input, ctx) => (await resolveInstance()).execute(input, ctx),
|
|
56
|
+
// Called through the instance so each keeps its `this` (and its injected deps).
|
|
57
|
+
...(declares('isEnabled')
|
|
58
|
+
? { isEnabled: async () => (await resolveInstance()).isEnabled?.() ?? true }
|
|
59
|
+
: {}),
|
|
60
|
+
...(declares('canUse')
|
|
61
|
+
? { canUse: async (actor) => (await resolveInstance()).canUse?.(actor) ?? true }
|
|
62
|
+
: {}),
|
|
63
|
+
...(declares('describe')
|
|
64
|
+
? {
|
|
65
|
+
describe: async (scope) => (await resolveInstance()).describe?.(scope),
|
|
66
|
+
}
|
|
67
|
+
: {}),
|
|
68
|
+
};
|
|
69
|
+
registry.register(specFromMeta(meta, defaultRoles), handler);
|
|
53
70
|
return { name: meta.name, source: 'class' };
|
|
54
71
|
}
|
|
55
72
|
/** Register a `defineTool` functional tool, applying `defaultRoles` when it declares none. */
|
|
@@ -69,6 +86,7 @@ function specFromMeta(meta, defaultRoles) {
|
|
|
69
86
|
inputSchema: meta.input,
|
|
70
87
|
roles: meta.roles ?? defaultRoles,
|
|
71
88
|
...(meta.ability !== undefined ? { ability: meta.ability } : {}),
|
|
89
|
+
...(meta.enabled !== undefined ? { enabled: meta.enabled } : {}),
|
|
72
90
|
...(meta.presentation !== undefined ? { presentation: meta.presentation } : {}),
|
|
73
91
|
...(meta.terminal === true ? { terminal: true } : {}),
|
|
74
92
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-discovery.js","sourceRoot":"","sources":["../../src/tool-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAGL,uBAAuB,EACvB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAW1B;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAsB,EACtB,QAAiB,EACjB,YAAsB,EACtB,GAAwB;IAExB,oEAAoE;IACpE,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IACD,wFAAwF;IACxF,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,QAAqB,CAAC;IAClC,8FAA8F;IAC9F,kGAAkG;IAClG,MAAM,KAAK,GAAG,GAAG,CAAC,SAA8C,CAAC;IACjE,IAAI,OAAO,KAAK,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,wFAAwF;QACxF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,
|
|
1
|
+
{"version":3,"file":"tool-discovery.js","sourceRoot":"","sources":["../../src/tool-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAGL,uBAAuB,EACvB,cAAc,GAEf,MAAM,kBAAkB,CAAC;AAW1B;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAsB,EACtB,QAAiB,EACjB,YAAsB,EACtB,GAAwB;IAExB,oEAAoE;IACpE,IAAI,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,OAAO,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClE,CAAC;IACD,wFAAwF;IACxF,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,QAAqB,CAAC;IAClC,8FAA8F;IAC9F,kGAAkG;IAClG,MAAM,KAAK,GAAG,GAAG,CAAC,SAA8C,CAAC;IACjE,IAAI,OAAO,KAAK,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iGAAiG;IACjG,gGAAgG;IAChG,kFAAkF;IAClF,MAAM,QAAQ,GAAG,CAAC,MAA2C,EAAW,EAAE,CACxE,OAAQ,KAA6C,EAAE,CAAC,MAAM,CAAC,KAAK,UAAU,CAAC;IAEjF,IAAI,eAA2C,CAAC;IAChD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,wFAAwF;QACxF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,eAAe,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,4FAA4F;QAC5F,4FAA4F;QAC5F,gGAAgG;QAChG,4EAA4E;QAC5E,IAAI,eAAiD,CAAC;QACtD,eAAe,GAAG,GAAG,EAAE;YACrB,eAAe,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAC;YAC/E,OAAO,eAAe,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAgB;QAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QAC5E,gFAAgF;QAChF,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC;YACvB,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,IAAI,EAAE;YAC5E,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACpB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAY,EAAE,EAAE,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;YACvF,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;YACtB,CAAC,CAAC;gBACE,QAAQ,EAAE,KAAK,EAAE,KAAwB,EAAE,EAAE,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC;aAC1F;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC9C,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,sBAAsB,CACpC,QAAsB,EACtB,IAAoB,EACpB,YAAsB;IAEtB,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACpF,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,IAAgB,EAAE,YAAsB;IAC5D,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,KAAK;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,YAAY;QACjC,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,IAAI,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,GAAc;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAuC,CAAC;QACrD,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,kBAAkB,CAAC,OAAiB;IAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAClG,OAAO,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAsB,EACtB,GAAW,EACX,YAAsB,EACtB,GAAwB;IAExB,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC,EAAE,CAAC;YACrE,SAAS;QACX,CAAC;QACD,+FAA+F;QAC/F,oGAAoG;QACpG,kGAAkG;QAClG,iGAAiG;QACjG,iCAAiC;QACjC,IAAI,GAA4B,CAAC;QACjC,IAAI,CAAC;YACH,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAA4B,CAAC;QACxF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAI,GAAyE;gBACvF,EAAE,MAAM,CAAC;YACX,MAAM,OAAO,GAAG,oDAAoD,KAAK,oGAAoG,CAAC;YAC9K,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC9B,CAAC;YACD,SAAS;QACX,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAQD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAsB,EACtB,MAAmB,EACnB,YAAsB,EACtB,GAAwB;IAExB,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC;QACzB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;YACzE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { ToolHandler } from './spi/tool.js';
|
|
2
|
+
import type { Actor, ToolSpec } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Is this tool part of this deployment right now? `ToolSpec.enabled` and the handler's
|
|
5
|
+
* `isEnabled()` are ANDed — either one saying no is enough — and both default to yes.
|
|
6
|
+
*
|
|
7
|
+
* Resolved per turn rather than at registration, so the answer can come from configuration that
|
|
8
|
+
* did not exist when the tool was registered.
|
|
9
|
+
*/
|
|
10
|
+
export declare function isToolEnabled(spec: ToolSpec, handler?: ToolHandler): Promise<boolean>;
|
|
11
|
+
/**
|
|
12
|
+
* Drop tools this deployment has turned off, before anyone asks who may call them. A disabled tool
|
|
13
|
+
* is absent, not forbidden — the difference matters, because "forbidden" tells the model (and the
|
|
14
|
+
* user reading a refusal) that the capability exists.
|
|
15
|
+
*/
|
|
16
|
+
export declare function filterToolsByEnabled<T extends {
|
|
17
|
+
spec: ToolSpec;
|
|
18
|
+
handler?: ToolHandler;
|
|
19
|
+
}>(entries: T[]): Promise<T[]>;
|
|
20
|
+
/**
|
|
21
|
+
* May this actor use this tool, per the tool's OWN gate? Tools without a `canUse` say yes and are
|
|
22
|
+
* governed by the `RolesPolicy` alone.
|
|
23
|
+
*/
|
|
24
|
+
export declare function canActorUseTool(actor: Actor, handler?: ToolHandler): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Drop tools whose own `canUse` refuses this actor. Runs after the app-wide `RolesPolicy`, and is
|
|
27
|
+
* additive to it — a tool can narrow who reaches it, never widen.
|
|
28
|
+
*/
|
|
29
|
+
export declare function filterToolsByCanUse<T extends {
|
|
30
|
+
spec: ToolSpec;
|
|
31
|
+
handler?: ToolHandler;
|
|
32
|
+
}>(entries: T[], actor: Actor): Promise<T[]>;
|
|
33
|
+
//# sourceMappingURL=tool-filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-filters.d.ts","sourceRoot":"","sources":["../../src/tool-filters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3F;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAAE,EAC5F,OAAO,EAAE,CAAC,EAAE,GACX,OAAO,CAAC,CAAC,EAAE,CAAC,CAQd;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3F;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAA;CAAE,EAC3F,OAAO,EAAE,CAAC,EAAE,EACZ,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,CAAC,EAAE,CAAC,CAQd"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Is this tool part of this deployment right now? `ToolSpec.enabled` and the handler's
|
|
3
|
+
* `isEnabled()` are ANDed — either one saying no is enough — and both default to yes.
|
|
4
|
+
*
|
|
5
|
+
* Resolved per turn rather than at registration, so the answer can come from configuration that
|
|
6
|
+
* did not exist when the tool was registered.
|
|
7
|
+
*/
|
|
8
|
+
export async function isToolEnabled(spec, handler) {
|
|
9
|
+
const declared = typeof spec.enabled === 'function' ? await spec.enabled() : (spec.enabled ?? true);
|
|
10
|
+
if (!declared) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return handler?.isEnabled === undefined ? true : await handler.isEnabled();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Drop tools this deployment has turned off, before anyone asks who may call them. A disabled tool
|
|
17
|
+
* is absent, not forbidden — the difference matters, because "forbidden" tells the model (and the
|
|
18
|
+
* user reading a refusal) that the capability exists.
|
|
19
|
+
*/
|
|
20
|
+
export async function filterToolsByEnabled(entries) {
|
|
21
|
+
const checked = await Promise.all(entries.map(async (entry) => ({
|
|
22
|
+
entry,
|
|
23
|
+
enabled: await isToolEnabled(entry.spec, entry.handler),
|
|
24
|
+
})));
|
|
25
|
+
return checked.filter((row) => row.enabled).map((row) => row.entry);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* May this actor use this tool, per the tool's OWN gate? Tools without a `canUse` say yes and are
|
|
29
|
+
* governed by the `RolesPolicy` alone.
|
|
30
|
+
*/
|
|
31
|
+
export async function canActorUseTool(actor, handler) {
|
|
32
|
+
return handler?.canUse === undefined ? true : await handler.canUse(actor);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Drop tools whose own `canUse` refuses this actor. Runs after the app-wide `RolesPolicy`, and is
|
|
36
|
+
* additive to it — a tool can narrow who reaches it, never widen.
|
|
37
|
+
*/
|
|
38
|
+
export async function filterToolsByCanUse(entries, actor) {
|
|
39
|
+
const checked = await Promise.all(entries.map(async (entry) => ({
|
|
40
|
+
entry,
|
|
41
|
+
allowed: await canActorUseTool(actor, entry.handler),
|
|
42
|
+
})));
|
|
43
|
+
return checked.filter((row) => row.allowed).map((row) => row.entry);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=tool-filters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-filters.js","sourceRoot":"","sources":["../../src/tool-filters.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc,EAAE,OAAqB;IACvE,MAAM,QAAQ,GACZ,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IACrF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAY;IAEZ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,KAAK;QACL,OAAO,EAAE,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;KACxD,CAAC,CAAC,CACJ,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAY,EAAE,OAAqB;IACvE,OAAO,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAY,EACZ,KAAY;IAEZ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,KAAK;QACL,OAAO,EAAE,MAAM,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;KACrD,CAAC,CAAC,CACJ,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -7,6 +7,19 @@ export declare class ToolForbiddenError extends Error {
|
|
|
7
7
|
readonly toolName: string;
|
|
8
8
|
constructor(toolName: string);
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Thrown when a registered tool is invoked while this deployment has it turned off (`enabled` /
|
|
12
|
+
* `isEnabled()`). Distinct from {@link ToolForbiddenError}, which is about the actor, and from
|
|
13
|
+
* {@link ToolNotFoundError}, which is about a name nobody registered — an operator reading a log
|
|
14
|
+
* needs to tell "you flipped the flag" apart from "that tool does not exist in this build".
|
|
15
|
+
*
|
|
16
|
+
* Reachable in normal operation, not just from a forged call: a HITL `action` approved before the
|
|
17
|
+
* flag was turned off runs its tool afterwards.
|
|
18
|
+
*/
|
|
19
|
+
export declare class ToolDisabledError extends Error {
|
|
20
|
+
readonly toolName: string;
|
|
21
|
+
constructor(toolName: string);
|
|
22
|
+
}
|
|
10
23
|
/** Thrown when a tool is invoked that was never registered. */
|
|
11
24
|
export declare class ToolNotFoundError extends Error {
|
|
12
25
|
readonly toolName: string;
|
|
@@ -40,15 +53,30 @@ export declare class ToolRegistry {
|
|
|
40
53
|
has(name: string): boolean;
|
|
41
54
|
spec(name: string): ToolSpec | undefined;
|
|
42
55
|
allSpecs(): ToolSpec[];
|
|
43
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* The tools to offer the model for this actor+agent, after the four filter layers: what this
|
|
58
|
+
* agent pinned, what this deployment has enabled, what this actor's role allows, and what each
|
|
59
|
+
* tool's own `canUse` allows this actor.
|
|
60
|
+
*
|
|
61
|
+
* Every layer only ever removes tools, so no arrangement of them can widen what a turn reaches.
|
|
62
|
+
* The allow-list goes FIRST, even though it is the narrowest statement: it is a pure name-set
|
|
63
|
+
* match, while each of the three below it may be a round trip — an authz service, a feature-flag
|
|
64
|
+
* store, an entitlement table — and this runs once per model step.
|
|
65
|
+
*/
|
|
44
66
|
definitionsFor(actor: Actor, policy: RolesPolicy, allowedTools?: string[], scope?: Omit<ToolDescribeScope, 'actor'>): Promise<ToolDefinition[]>;
|
|
45
67
|
/**
|
|
46
|
-
* The specs {@link definitionsFor} offers the model, whole — the same
|
|
47
|
-
* For a surface that lists what an actor can reach
|
|
48
|
-
* with what the model is actually shown.
|
|
68
|
+
* The specs {@link definitionsFor} offers the model, whole — the same four gates (allow-list,
|
|
69
|
+
* enabled, role, `canUse`) in the same order. For a surface that lists what an actor can reach
|
|
70
|
+
* (`GET <path>/tools`), which must never disagree with what the model is actually shown.
|
|
49
71
|
*/
|
|
50
72
|
visibleSpecs(actor: Actor, policy: RolesPolicy, allowedTools?: string[]): Promise<ToolSpec[]>;
|
|
51
|
-
|
|
73
|
+
private visibleEntries;
|
|
74
|
+
/**
|
|
75
|
+
* Run a tool. Re-checks that the tool is enabled, that the role allows it and that the tool's own
|
|
76
|
+
* `canUse` admits the actor (defense-in-depth — a call can reach here from a replayed durable step
|
|
77
|
+
* or an approval granted before the flag moved, neither of which went through `definitionsFor`
|
|
78
|
+
* again) and re-parses the input.
|
|
79
|
+
*/
|
|
52
80
|
invoke(name: string, input: unknown, ctx: AiToolCtx, policy: RolesPolicy): Promise<unknown>;
|
|
53
81
|
}
|
|
54
82
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ/E,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAElE,qEAAqE;AACrE,qBAAa,kBAAmB,SAAQ,KAAK;aACf,QAAQ,EAAE,MAAM;IAA5C,YAA4B,QAAQ,EAAE,MAAM,EAG3C;CACF;AAED;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aACd,QAAQ,EAAE,MAAM;IAA5C,YAA4B,QAAQ,EAAE,MAAM,EAG3C;CACF;AAED,+DAA+D;AAC/D,qBAAa,iBAAkB,SAAQ,KAAK;aACd,QAAQ,EAAE,MAAM;IAA5C,YAA4B,QAAQ,EAAE,MAAM,EAG3C;CACF;AAED,uEAAuE;AACvE,qBAAa,qBAAsB,SAAQ,KAAK;aAE5B,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE;IAF3D,YACkB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,gBAAgB,CAAC,KAAK,EAAE,EAM1D;CACF;AAOD;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IAEpD,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAEnD;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhC;IAED,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzB;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEvC;IAED,QAAQ,IAAI,QAAQ,EAAE,CAErB;IAED;;;;;;;;;OASG;IACG,cAAc,CAClB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,KAAK,GAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAM,GAC3C,OAAO,CAAC,cAAc,EAAE,CAAC,CAe3B;IAED;;;;OAIG;IACG,YAAY,CAChB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAErB;YAEa,cAAc;IAuB5B;;;;;OAKG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,OAAO,CAAC,CAuBlB;CACF;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,WAAW;IAIlD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAH/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IAExC,YACmB,YAAY,GAAE,MAAM,EAAO,EAC5C,OAAO,GAAE,kBAAuB,EAGjC;IAED,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAIzC;CACF;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,kBAAkB;IACvD,YAAY,YAAY,GAAE,MAAM,EAAO,EAEtC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { filterToolsByRole, personaFilterTools } from './personas.js';
|
|
2
|
+
import { canActorUseTool, filterToolsByCanUse, filterToolsByEnabled, isToolEnabled, } from './tool-filters.js';
|
|
2
3
|
import { createNoopEmitUi } from './tool-ui.js';
|
|
3
4
|
/** Thrown when an actor invokes a tool their role is not allowed. */
|
|
4
5
|
export class ToolForbiddenError extends Error {
|
|
@@ -9,6 +10,23 @@ export class ToolForbiddenError extends Error {
|
|
|
9
10
|
this.name = 'ToolForbiddenError';
|
|
10
11
|
}
|
|
11
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Thrown when a registered tool is invoked while this deployment has it turned off (`enabled` /
|
|
15
|
+
* `isEnabled()`). Distinct from {@link ToolForbiddenError}, which is about the actor, and from
|
|
16
|
+
* {@link ToolNotFoundError}, which is about a name nobody registered — an operator reading a log
|
|
17
|
+
* needs to tell "you flipped the flag" apart from "that tool does not exist in this build".
|
|
18
|
+
*
|
|
19
|
+
* Reachable in normal operation, not just from a forged call: a HITL `action` approved before the
|
|
20
|
+
* flag was turned off runs its tool afterwards.
|
|
21
|
+
*/
|
|
22
|
+
export class ToolDisabledError extends Error {
|
|
23
|
+
toolName;
|
|
24
|
+
constructor(toolName) {
|
|
25
|
+
super(`Tool "${toolName}" is disabled in this deployment`);
|
|
26
|
+
this.toolName = toolName;
|
|
27
|
+
this.name = 'ToolDisabledError';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
12
30
|
/** Thrown when a tool is invoked that was never registered. */
|
|
13
31
|
export class ToolNotFoundError extends Error {
|
|
14
32
|
toolName;
|
|
@@ -61,13 +79,21 @@ export class ToolRegistry {
|
|
|
61
79
|
allSpecs() {
|
|
62
80
|
return [...this.entries.values()].map((entry) => entry.spec);
|
|
63
81
|
}
|
|
64
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* The tools to offer the model for this actor+agent, after the four filter layers: what this
|
|
84
|
+
* agent pinned, what this deployment has enabled, what this actor's role allows, and what each
|
|
85
|
+
* tool's own `canUse` allows this actor.
|
|
86
|
+
*
|
|
87
|
+
* Every layer only ever removes tools, so no arrangement of them can widen what a turn reaches.
|
|
88
|
+
* The allow-list goes FIRST, even though it is the narrowest statement: it is a pure name-set
|
|
89
|
+
* match, while each of the three below it may be a round trip — an authz service, a feature-flag
|
|
90
|
+
* store, an entitlement table — and this runs once per model step.
|
|
91
|
+
*/
|
|
65
92
|
async definitionsFor(actor, policy, allowedTools, scope = {}) {
|
|
66
|
-
const visible = await this.
|
|
67
|
-
return Promise.all(visible.map(async (spec) => {
|
|
68
|
-
const handler = this.entries.get(spec.name)?.handler;
|
|
93
|
+
const visible = await this.visibleEntries(actor, policy, allowedTools);
|
|
94
|
+
return Promise.all(visible.map(async ({ spec, handler }) => {
|
|
69
95
|
// After every gate: a tool this actor cannot reach is never asked to describe itself.
|
|
70
|
-
const override = handler
|
|
96
|
+
const override = handler.describe === undefined ? undefined : await handler.describe({ actor, ...scope });
|
|
71
97
|
return {
|
|
72
98
|
name: spec.name,
|
|
73
99
|
kind: spec.kind,
|
|
@@ -77,23 +103,41 @@ export class ToolRegistry {
|
|
|
77
103
|
}));
|
|
78
104
|
}
|
|
79
105
|
/**
|
|
80
|
-
* The specs {@link definitionsFor} offers the model, whole — the same
|
|
81
|
-
* For a surface that lists what an actor can reach
|
|
82
|
-
* with what the model is actually shown.
|
|
106
|
+
* The specs {@link definitionsFor} offers the model, whole — the same four gates (allow-list,
|
|
107
|
+
* enabled, role, `canUse`) in the same order. For a surface that lists what an actor can reach
|
|
108
|
+
* (`GET <path>/tools`), which must never disagree with what the model is actually shown.
|
|
83
109
|
*/
|
|
84
110
|
async visibleSpecs(actor, policy, allowedTools) {
|
|
85
|
-
|
|
86
|
-
return personaFilterTools(roleScoped, allowedTools);
|
|
111
|
+
return (await this.visibleEntries(actor, policy, allowedTools)).map(({ spec }) => spec);
|
|
87
112
|
}
|
|
88
|
-
|
|
113
|
+
async visibleEntries(actor, policy, allowedTools) {
|
|
114
|
+
const pinnedNames = new Set(personaFilterTools(this.allSpecs(), allowedTools).map((spec) => spec.name));
|
|
115
|
+
const pinned = [...this.entries.values()].filter((entry) => pinnedNames.has(entry.spec.name));
|
|
116
|
+
const live = await filterToolsByEnabled(pinned);
|
|
117
|
+
const allowedByRole = new Set((await filterToolsByRole(live.map((entry) => entry.spec), actor, policy)).map((spec) => spec.name));
|
|
118
|
+
const roleScoped = live.filter((entry) => allowedByRole.has(entry.spec.name));
|
|
119
|
+
return filterToolsByCanUse(roleScoped, actor);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Run a tool. Re-checks that the tool is enabled, that the role allows it and that the tool's own
|
|
123
|
+
* `canUse` admits the actor (defense-in-depth — a call can reach here from a replayed durable step
|
|
124
|
+
* or an approval granted before the flag moved, neither of which went through `definitionsFor`
|
|
125
|
+
* again) and re-parses the input.
|
|
126
|
+
*/
|
|
89
127
|
async invoke(name, input, ctx, policy) {
|
|
90
128
|
const entry = this.entries.get(name);
|
|
91
129
|
if (entry === undefined) {
|
|
92
130
|
throw new ToolNotFoundError(name);
|
|
93
131
|
}
|
|
132
|
+
if (!(await isToolEnabled(entry.spec, entry.handler))) {
|
|
133
|
+
throw new ToolDisabledError(name);
|
|
134
|
+
}
|
|
94
135
|
if (!(await policy.can(ctx.actor, entry.spec))) {
|
|
95
136
|
throw new ToolForbiddenError(name);
|
|
96
137
|
}
|
|
138
|
+
if (!(await canActorUseTool(ctx.actor, entry.handler))) {
|
|
139
|
+
throw new ToolForbiddenError(name);
|
|
140
|
+
}
|
|
97
141
|
const validation = await entry.spec.inputSchema['~standard'].validate(input);
|
|
98
142
|
if (validation.issues !== undefined) {
|
|
99
143
|
throw new ToolInputInvalidError(name, validation.issues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/tool-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,qEAAqE;AACrE,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACf,QAAQ;IAApC,YAA4B,QAAgB;QAC1C,KAAK,CAAC,SAAS,QAAQ,gCAAgC,CAAC,CAAC;wBAD/B,QAAQ;QAElC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,+DAA+D;AAC/D,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACd,QAAQ;IAApC,YAA4B,QAAgB;QAC1C,KAAK,CAAC,SAAS,QAAQ,qBAAqB,CAAC,CAAC;wBADpB,QAAQ;QAElC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,uEAAuE;AACvE,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAE5B,QAAQ;IACR,MAAM;IAFxB,YACkB,QAAgB,EAChB,MAAyC;QAEzD,KAAK,CACH,2BAA2B,QAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3F,CAAC;wBALc,QAAQ;sBACR,MAAM;QAKtB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAOD;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IACN,OAAO,GAAG,IAAI,GAAG,EAAiB,CAAC;IAEpD,QAAQ,CAAC,IAAc,EAAE,OAAoB;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACtC,CAAC;IAED,QAAQ;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/tool-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -53,6 +53,16 @@ export interface ToolSpec {
|
|
|
53
53
|
terminal?: boolean;
|
|
54
54
|
/** Roles allowed to invoke. Undefined → defaults applied by RolesPolicy (unrestricted unless `defaultRoles` is set). */
|
|
55
55
|
roles?: string[];
|
|
56
|
+
/**
|
|
57
|
+
* Whether the tool exists in this deployment. `false` (or a predicate returning `false`) drops it
|
|
58
|
+
* before the role filter, so it is never offered to the model and cannot be invoked. Undefined →
|
|
59
|
+
* enabled.
|
|
60
|
+
*
|
|
61
|
+
* A predicate is re-evaluated every turn, so a flag flipped at runtime takes effect on the next
|
|
62
|
+
* message with nothing re-registered. For availability that depends on a container-resolved
|
|
63
|
+
* service, put `isEnabled()` on the tool class instead — a spec is data, a handler is a service.
|
|
64
|
+
*/
|
|
65
|
+
enabled?: boolean | (() => boolean | Promise<boolean>);
|
|
56
66
|
/**
|
|
57
67
|
* An authorization ability name (e.g. 'cache.purge'). Consumed by an ability-aware RolesPolicy
|
|
58
68
|
* such as the `@adonis-agora/agent/authz` Bouncer adapter (`authzToolAuthorizer`), which denies
|
|
@@ -398,6 +408,12 @@ export interface ThreadSummary {
|
|
|
398
408
|
* `model` runs on it. `null` → the provider's default. Undefined for a store that does not persist it.
|
|
399
409
|
*/
|
|
400
410
|
model?: string | null;
|
|
411
|
+
/**
|
|
412
|
+
* The agent this thread's turns run as when a send names none (`PATCH /threads/:id
|
|
413
|
+
* { defaultAgent }`). `null` → the configured default agent. Undefined for a store that does not
|
|
414
|
+
* persist it.
|
|
415
|
+
*/
|
|
416
|
+
defaultAgent?: string | null;
|
|
401
417
|
/**
|
|
402
418
|
* The run streaming on this thread right now — the one a reloading client re-attaches to
|
|
403
419
|
* (`GET <path>/chat/:runId/stream`) — or `null` when none is. Set when a turn starts, cleared when
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.57.0",
|
|
4
4
|
"description": "Governed, durable-backed AI agent (chat + tool-calling + governance) for AdonisJS — part of the Agora ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -156,6 +156,11 @@
|
|
|
156
156
|
"import": "./dist/src/react/genui/json-render.js",
|
|
157
157
|
"default": "./dist/src/react/genui/json-render.js"
|
|
158
158
|
},
|
|
159
|
+
"./react/media": {
|
|
160
|
+
"types": "./dist/src/react/media.d.ts",
|
|
161
|
+
"import": "./dist/src/react/media.js",
|
|
162
|
+
"default": "./dist/src/react/media.js"
|
|
163
|
+
},
|
|
159
164
|
"./react/markdown": {
|
|
160
165
|
"types": "./dist/src/react/markdown.d.ts",
|
|
161
166
|
"import": "./dist/src/react/markdown.js",
|
|
@@ -199,8 +204,9 @@
|
|
|
199
204
|
"@adonisjs/core": "^7.3.0",
|
|
200
205
|
"@adonisjs/lucid": "^22.4.0",
|
|
201
206
|
"@adonisjs/redis": "^9.2.0 || ^10.0.0 || ^11.0.0",
|
|
202
|
-
"@dudousxd/nestjs-agent-core": ">=0.
|
|
203
|
-
"@dudousxd/nestjs-agent-react": ">=0.
|
|
207
|
+
"@dudousxd/nestjs-agent-core": ">=0.35.0 <1.0.0",
|
|
208
|
+
"@dudousxd/nestjs-agent-react": ">=0.30.0 <1.0.0",
|
|
209
|
+
"@dudousxd/nestjs-media-client": ">=0.3.0 <1.0.0",
|
|
204
210
|
"@qdrant/js-client-rest": "^1.11.0",
|
|
205
211
|
"ai": "^7.0.0",
|
|
206
212
|
"node-sql-parser": "^5.3.0",
|
|
@@ -253,6 +259,9 @@
|
|
|
253
259
|
"@dudousxd/nestjs-agent-react": {
|
|
254
260
|
"optional": true
|
|
255
261
|
},
|
|
262
|
+
"@dudousxd/nestjs-media-client": {
|
|
263
|
+
"optional": true
|
|
264
|
+
},
|
|
256
265
|
"@adonis-agora/media": {
|
|
257
266
|
"optional": true
|
|
258
267
|
}
|
|
@@ -269,8 +278,9 @@
|
|
|
269
278
|
"@ag-ui/client": "1.0.1",
|
|
270
279
|
"@ag-ui/core": "1.0.1",
|
|
271
280
|
"@ai-sdk/react": "^4.0.125",
|
|
272
|
-
"@dudousxd/nestjs-agent-core": "0.
|
|
273
|
-
"@dudousxd/nestjs-agent-react": "0.
|
|
281
|
+
"@dudousxd/nestjs-agent-core": "0.36.0",
|
|
282
|
+
"@dudousxd/nestjs-agent-react": "0.31.0",
|
|
283
|
+
"@dudousxd/nestjs-media-client": "0.3.0",
|
|
274
284
|
"@qdrant/js-client-rest": "1.19.0",
|
|
275
285
|
"@tanstack/intent": "0.4.0",
|
|
276
286
|
"@testing-library/dom": "10.4.2",
|
|
@@ -50,7 +50,7 @@ export default class GetWeather extends ReadTool<Input, { tempC: number }> {
|
|
|
50
50
|
name: 'get_weather',
|
|
51
51
|
description: 'Current weather for a city.',
|
|
52
52
|
input,
|
|
53
|
-
roles: ['MEMBER'], // omit → config.defaultRoles ([
|
|
53
|
+
roles: ['MEMBER'], // omit → config.defaultRoles ([] — open — by default)
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
async execute({ city }: Input, _ctx: AiToolCtx) {
|
|
@@ -209,6 +209,24 @@ arguments and expires (`ttlMs`, default 15 min).
|
|
|
209
209
|
Source: `packages/adonis/docs/mcp.mdx` ("Writes with a human gate"),
|
|
210
210
|
`packages/adonis/src/confirmed-tool.ts`.
|
|
211
211
|
|
|
212
|
+
## Feature flags and per-user gates — `enabled`, `isEnabled()`, `canUse(actor)`
|
|
213
|
+
|
|
214
|
+
```ts
|
|
215
|
+
// A flag with no service behind it: on the options (boolean, or a predicate re-read every turn).
|
|
216
|
+
static tool = { name: 'search_docs', description: '...', input, enabled: () => env.get('DOCS') === true }
|
|
217
|
+
|
|
218
|
+
// A flag or entitlement that needs a service: methods on the (container-resolved) class.
|
|
219
|
+
isEnabled() { return this.flags.on('docs') }
|
|
220
|
+
canUse(actor: Actor) { return this.plans.includesDocs(actor.tenantRef) }
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
`defineTool` / `defineConfirmedTool` take `enabled` and `canUse` as options; `mcpServers[]`
|
|
224
|
+
takes both per server. Order on the offered list AND on invoke: allow-list → `enabled` →
|
|
225
|
+
`RolesPolicy` → `canUse`; none can widen. A disabled tool is never shown to the model and
|
|
226
|
+
invoking one throws `ToolDisabledError` (not `ToolForbiddenError`). Prefer these to registering a
|
|
227
|
+
tool conditionally, and to refusing inside `execute` (which costs the model a turn).
|
|
228
|
+
Source: `packages/adonis/docs/authoring/tools.mdx`, `packages/adonis/src/tool-filters.ts`.
|
|
229
|
+
|
|
212
230
|
## Common mistakes
|
|
213
231
|
|
|
214
232
|
### CRITICAL — shipping a privileged tool without `roles`
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { type InterruptAddress } from './interrupt-id.js';
|
|
2
|
-
import type { AgUiContext, AgUiMessage, AgUiResumeEntry, AgUiRunInput } from './types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Read a request body as a `RunAgentInput`, or say why it is not one.
|
|
5
|
-
*
|
|
6
|
-
* Only what this producer acts on is checked, and a KNOWN member with a value the schema rejects is
|
|
7
|
-
* malformed (the run never starts). A member it does not recognise is not an error — the protocol's
|
|
8
|
-
* asymmetry: a newer consumer's input must not bounce off an older producer.
|
|
9
|
-
*/
|
|
10
|
-
export declare function parseRunInput(body: unknown): AgUiRunInput | string;
|
|
11
|
-
/** A media part carried inline, ready to be staged as an attachment. */
|
|
12
|
-
export interface InlineMedia {
|
|
13
|
-
kind: 'image' | 'audio' | 'video' | 'document';
|
|
14
|
-
contentType: string;
|
|
15
|
-
data: Buffer;
|
|
16
|
-
filename: string;
|
|
17
|
-
}
|
|
18
|
-
export interface UserTurn {
|
|
19
|
-
/** The text of the message the run answers. */
|
|
20
|
-
text: string;
|
|
21
|
-
media: InlineMedia[];
|
|
22
|
-
/** Why a part was not used, one sentence each — reported, never fatal. */
|
|
23
|
-
dropped: string[];
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* The turn a run answers: the LAST user message of the input. The library keeps each thread's
|
|
27
|
-
* history itself, so the earlier messages the consumer restates are not read back in — what the
|
|
28
|
-
* agent resumes from is what it stored.
|
|
29
|
-
*
|
|
30
|
-
* Multimodal parts: text parts are the message's text; a media part carried inline (`data`) becomes
|
|
31
|
-
* an attachment. A part by `url` or by provider `file` handle is dropped and said so — this producer
|
|
32
|
-
* hands the model only bytes it staged itself, never an address a caller supplied.
|
|
33
|
-
*/
|
|
34
|
-
export declare function readUserTurn(messages: readonly AgUiMessage[]): UserTurn | null;
|
|
35
|
-
/** `context` entries as the library's page context carries them, or `undefined` for none. */
|
|
36
|
-
export declare function readContext(context: readonly AgUiContext[] | undefined): AgUiContext[] | undefined;
|
|
37
|
-
/**
|
|
38
|
-
* What the library reads from `forwardedProps` — the consumer's channel for what AG-UI does not
|
|
39
|
-
* model: which agent, which model, which persona, and the page context the tools see.
|
|
40
|
-
*/
|
|
41
|
-
export interface ForwardedOptions {
|
|
42
|
-
agent?: string;
|
|
43
|
-
model?: string;
|
|
44
|
-
persona?: string;
|
|
45
|
-
pageContext?: Record<string, unknown>;
|
|
46
|
-
}
|
|
47
|
-
export declare function readForwardedProps(forwarded: unknown): ForwardedOptions;
|
|
48
|
-
/** One resume entry this producer can act on. */
|
|
49
|
-
export interface ResumeDecision {
|
|
50
|
-
address: InterruptAddress;
|
|
51
|
-
entry: AgUiResumeEntry;
|
|
52
|
-
}
|
|
53
|
-
export interface ResumePlan {
|
|
54
|
-
decisions: ResumeDecision[];
|
|
55
|
-
/** Entries naming an interrupt this producer did not raise: skipped with a warning, never fatal. */
|
|
56
|
-
unrecognised: string[];
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Sort a resume list into what it answers. Every recognised entry must continue the SAME library
|
|
60
|
-
* run from the SAME point — they are the interrupts of one `RUN_FINISHED` — and a list that does not
|
|
61
|
-
* is malformed (a string says why).
|
|
62
|
-
*/
|
|
63
|
-
export declare function planResume(resume: readonly AgUiResumeEntry[]): ResumePlan | string;
|
|
64
|
-
/** `{ approved, reason?, remember? }` out of an approval's resume payload. A bare boolean is accepted. */
|
|
65
|
-
export declare function readApprovalPayload(payload: unknown): {
|
|
66
|
-
approved: boolean;
|
|
67
|
-
reason?: string;
|
|
68
|
-
remember?: boolean;
|
|
69
|
-
} | null;
|
|
70
|
-
/** `questionId → string[]` out of an elicitation's resume payload (`{ answers }` or the map itself). */
|
|
71
|
-
export declare function readAnswersPayload(payload: unknown): Record<string, string[]> | null;
|
|
72
|
-
//# sourceMappingURL=input.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/ag-ui/input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAEV,WAAW,EACX,WAAW,EACX,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AAMpB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,GAAG,MAAM,CA+BlE;AAED,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAuBD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,QAAQ,GAAG,IAAI,CAyD9E;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CACzB,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,GAC1C,WAAW,EAAE,GAAG,SAAS,CAO3B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB,CAevE;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,oGAAoG;IACpG,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,UAAU,GAAG,MAAM,CAwBlF;AAED,0GAA0G;AAC1G,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,IAAI,CAQP;AAED,wGAAwG;AACxG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAWpF"}
|