@telora/mcp-products 0.22.72 → 0.22.74
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/dist/handlers/connectorHandlers.js +42 -0
- package/dist/handlers/connectorHandlers.js.map +1 -1
- package/dist/handlers/discoverHandler.d.ts +14 -1
- package/dist/handlers/discoverHandler.js +83 -7
- package/dist/handlers/discoverHandler.js.map +1 -1
- package/dist/types/nextSteps.d.ts +8 -0
- package/package.json +1 -1
|
@@ -17,6 +17,48 @@ export function registerConnectorTools(server, getCreds, profile = 'full') {
|
|
|
17
17
|
const whoami = await callProductApi(creds, {
|
|
18
18
|
action: "whoami",
|
|
19
19
|
});
|
|
20
|
+
// Identity gate: a daemon must authenticate with an 'ai_tracker' machine
|
|
21
|
+
// identity. The MCP server is authenticated with the operator's PERSONAL
|
|
22
|
+
// tracker (kind 'user'), which the product-api gate bars from the daemon_*
|
|
23
|
+
// control plane (claim, heartbeat, ...). Wiring that personal tracker as
|
|
24
|
+
// the daemon credential -- as this tool used to do -- produces a daemon
|
|
25
|
+
// that starts but can never claim its product, so Telora shows "no
|
|
26
|
+
// connected agents". Provisioning a machine identity REQUIRES interactive
|
|
27
|
+
// user auth (a logged-in session), which this tracker-authenticated tool
|
|
28
|
+
// does not have and cannot safely substitute for (minting an ai_tracker
|
|
29
|
+
// from a user tracker would re-open the very secret-surface escalation the
|
|
30
|
+
// gate closes). So we refuse rather than silently mint a broken config,
|
|
31
|
+
// and route the operator to the interactive connect flow, which
|
|
32
|
+
// authenticates with a JWT and provisions a real ai_tracker via the
|
|
33
|
+
// connect-token redeem path.
|
|
34
|
+
//
|
|
35
|
+
// Refuse only when we POSITIVELY identify a user tracker (kind === 'user').
|
|
36
|
+
// An older product-api that predates the whoami.kind field returns
|
|
37
|
+
// undefined here; treating undefined as "not ai_tracker" would wrongly
|
|
38
|
+
// block legitimate ai_tracker daemons during the deploy window, so we
|
|
39
|
+
// proceed (legacy behavior) until the backend reports kind.
|
|
40
|
+
if (whoami.kind === "user") {
|
|
41
|
+
return {
|
|
42
|
+
content: [{
|
|
43
|
+
type: "text",
|
|
44
|
+
text: `Cannot start the daemon: this session is authenticated as a personal ` +
|
|
45
|
+
`user tracker (${whoami.trackerName ?? "user"}), not a daemon machine ` +
|
|
46
|
+
`identity.\n\n` +
|
|
47
|
+
`Daemons must use an 'ai_tracker' credential -- a personal tracker is ` +
|
|
48
|
+
`blocked from the daemon control plane, so it would start but never ` +
|
|
49
|
+
`connect ("no connected agents"). Provisioning a daemon identity ` +
|
|
50
|
+
`requires an interactive login, so it has to go through the Connect ` +
|
|
51
|
+
`Workstation flow rather than this tool.\n\n` +
|
|
52
|
+
`To provision and start the daemon:\n` +
|
|
53
|
+
` 1. Open the Connect Workstation page in the Telora web app ` +
|
|
54
|
+
`(Settings -> Connect Workstation) for this product.\n` +
|
|
55
|
+
` 2. Run the one-liner it gives you from this repo. It looks like:\n` +
|
|
56
|
+
` curl -fsSL https://telora.syntelyos.com/connect.sh | bash -s -- TOK_...\n` +
|
|
57
|
+
` (or, if the daemon is already installed: telora-daemon connect TOK_...)\n\n` +
|
|
58
|
+
`That flow mints a real ai_tracker, writes daemon.json, and starts the daemon.`,
|
|
59
|
+
}],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
20
62
|
// Resolve productId — required so the daemon only picks up work for this repo's product
|
|
21
63
|
let productId = explicitProductId;
|
|
22
64
|
let autoCreatedProduct;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectorHandlers.js","sourceRoot":"","sources":["../../src/handlers/connectorHandlers.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wDAAwD;AACxD,8EAA8E;AAE9E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,cAAc,EACd,aAAa,EACb,WAAW,GAGZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,kBAAkB,GAEnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,UAAU,sBAAsB,CACpC,MAAiB,EACjB,QAAkB,EAClB,UAAuB,MAAM;IAE7B,8EAA8E;IAE9E,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,yGAAyG;QACzG,mGAAmG,EACnG;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2IAA2I,CAAC;KAC9L,EACD,WAAW,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE;QACrD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QAEzB,6CAA6C;QAC7C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE;YACzC,MAAM,EAAE,QAAQ;SACjB,
|
|
1
|
+
{"version":3,"file":"connectorHandlers.js","sourceRoot":"","sources":["../../src/handlers/connectorHandlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,11 @@ export interface ToolIndexEntry {
|
|
|
6
6
|
actions: string[];
|
|
7
7
|
keywords: string[];
|
|
8
8
|
}
|
|
9
|
+
export interface ProjectedToolIndexEntry extends ToolIndexEntry {
|
|
10
|
+
domain: string;
|
|
11
|
+
loadCommand: string | null;
|
|
12
|
+
callableHint: string;
|
|
13
|
+
}
|
|
9
14
|
/** Domain definitions: name -> description + registration thunk + tool index */
|
|
10
15
|
export interface DomainDef {
|
|
11
16
|
description: string;
|
|
@@ -40,12 +45,18 @@ export interface ProjectedDomain {
|
|
|
40
45
|
alwaysLoaded: false;
|
|
41
46
|
description: string;
|
|
42
47
|
keywords: string[];
|
|
43
|
-
toolIndex:
|
|
48
|
+
toolIndex: ProjectedToolIndexEntry[];
|
|
44
49
|
entryPoint?: {
|
|
45
50
|
intentPhrase: string;
|
|
46
51
|
rank: number;
|
|
47
52
|
};
|
|
48
53
|
}
|
|
54
|
+
export interface ToolLookupMatch {
|
|
55
|
+
domain: string;
|
|
56
|
+
loaded: boolean;
|
|
57
|
+
alwaysLoaded: boolean;
|
|
58
|
+
tool: ProjectedToolIndexEntry;
|
|
59
|
+
}
|
|
49
60
|
/**
|
|
50
61
|
* Pure projection of the on-demand `domains` registry into the list of entries
|
|
51
62
|
* emitted by the `telora_discover` `list` action. Flagged entry points (by
|
|
@@ -57,6 +68,8 @@ export interface ProjectedDomain {
|
|
|
57
68
|
* full McpServer; the registered `list` action calls this verbatim.
|
|
58
69
|
*/
|
|
59
70
|
export declare function projectDomainsForList(domains: DomainRegistry, loaded: ReadonlySet<string>): ProjectedDomain[];
|
|
71
|
+
export declare function lookupTools(toolName: string, domains: DomainRegistry, loaded: ReadonlySet<string>, startupDomains?: Record<string, StartupDomain>): ToolLookupMatch[];
|
|
72
|
+
export declare function formatLookupRecovery(matches: ToolLookupMatch[]): string;
|
|
60
73
|
/** Startup domains that are always loaded (shown in list for completeness) */
|
|
61
74
|
export interface StartupDomain {
|
|
62
75
|
description: string;
|
|
@@ -8,6 +8,26 @@
|
|
|
8
8
|
// ---------------------------------------------------------------------------
|
|
9
9
|
import { z } from "zod";
|
|
10
10
|
import { successResult, validationError, wrapHandler } from "../shared.js";
|
|
11
|
+
function buildLoadCommand(domain) {
|
|
12
|
+
return `telora_discover { "action": "load", "domain": "${domain}" }`;
|
|
13
|
+
}
|
|
14
|
+
function buildCallableHint(domain, toolName, loaded, alwaysLoaded) {
|
|
15
|
+
if (alwaysLoaded) {
|
|
16
|
+
return `${toolName} belongs to the always-loaded ${domain} domain and should already be callable.`;
|
|
17
|
+
}
|
|
18
|
+
if (loaded) {
|
|
19
|
+
return `${domain} is marked loaded on the server. If ${toolName} is still not callable, refresh the MCP tool list or reconnect this MCP session.`;
|
|
20
|
+
}
|
|
21
|
+
return `Load the ${domain} domain before calling ${toolName}.`;
|
|
22
|
+
}
|
|
23
|
+
function projectToolIndex(domain, toolIndex, loaded, alwaysLoaded) {
|
|
24
|
+
return toolIndex.map((tool) => ({
|
|
25
|
+
...tool,
|
|
26
|
+
domain,
|
|
27
|
+
loadCommand: alwaysLoaded ? null : buildLoadCommand(domain),
|
|
28
|
+
callableHint: buildCallableHint(domain, tool.name, loaded, alwaysLoaded),
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
11
31
|
/**
|
|
12
32
|
* Pure projection of the on-demand `domains` registry into the list of entries
|
|
13
33
|
* emitted by the `telora_discover` `list` action. Flagged entry points (by
|
|
@@ -20,13 +40,14 @@ import { successResult, validationError, wrapHandler } from "../shared.js";
|
|
|
20
40
|
*/
|
|
21
41
|
export function projectDomainsForList(domains, loaded) {
|
|
22
42
|
const domainNames = Object.keys(domains);
|
|
43
|
+
const isLoaded = (domain) => loaded.has(domain);
|
|
23
44
|
const entries = domainNames.map((d) => ({
|
|
24
45
|
domain: d,
|
|
25
|
-
loaded:
|
|
46
|
+
loaded: isLoaded(d),
|
|
26
47
|
alwaysLoaded: false,
|
|
27
48
|
description: domains[d].description,
|
|
28
49
|
keywords: domains[d].keywords,
|
|
29
|
-
toolIndex: domains[d].toolIndex,
|
|
50
|
+
toolIndex: projectToolIndex(d, domains[d].toolIndex, isLoaded(d), false),
|
|
30
51
|
entryPoint: domains[d].entryPoint,
|
|
31
52
|
}));
|
|
32
53
|
// Stable sort: flagged entry points first by ascending rank; everything else
|
|
@@ -46,6 +67,39 @@ export function projectDomainsForList(domains, loaded) {
|
|
|
46
67
|
})
|
|
47
68
|
.map(({ e }) => e);
|
|
48
69
|
}
|
|
70
|
+
export function lookupTools(toolName, domains, loaded, startupDomains) {
|
|
71
|
+
const matches = [];
|
|
72
|
+
for (const [domain, def] of Object.entries(startupDomains ?? {})) {
|
|
73
|
+
for (const tool of projectToolIndex(domain, def.toolIndex, true, true)) {
|
|
74
|
+
if (tool.name === toolName) {
|
|
75
|
+
matches.push({ domain, loaded: true, alwaysLoaded: true, tool });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
for (const [domain, def] of Object.entries(domains)) {
|
|
80
|
+
const domainLoaded = loaded.has(domain);
|
|
81
|
+
for (const tool of projectToolIndex(domain, def.toolIndex, domainLoaded, false)) {
|
|
82
|
+
if (tool.name === toolName) {
|
|
83
|
+
matches.push({ domain, loaded: domainLoaded, alwaysLoaded: false, tool });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return matches;
|
|
88
|
+
}
|
|
89
|
+
export function formatLookupRecovery(matches) {
|
|
90
|
+
if (matches.length === 0)
|
|
91
|
+
return "";
|
|
92
|
+
return matches
|
|
93
|
+
.map((match) => {
|
|
94
|
+
if (match.alwaysLoaded)
|
|
95
|
+
return `${match.tool.name} is always loaded in domain '${match.domain}'.`;
|
|
96
|
+
if (match.loaded) {
|
|
97
|
+
return `${match.tool.name} belongs to loaded domain '${match.domain}'. If it is still not callable, refresh the MCP tool list or reconnect the MCP session.`;
|
|
98
|
+
}
|
|
99
|
+
return `${match.tool.name} belongs to deferred domain '${match.domain}'. Load it with ${match.tool.loadCommand}.`;
|
|
100
|
+
})
|
|
101
|
+
.join(" ");
|
|
102
|
+
}
|
|
49
103
|
export function registerDiscoverTool(server, domains, startupDomains) {
|
|
50
104
|
const loaded = new Set();
|
|
51
105
|
const domainNames = Object.keys(domains);
|
|
@@ -65,10 +119,13 @@ export function registerDiscoverTool(server, domains, startupDomains) {
|
|
|
65
119
|
[...allKeywords].join(", ") + ".\n\n" +
|
|
66
120
|
"Available domains:\n" + domainCatalog + "\n\n" +
|
|
67
121
|
"Use action 'list' to see all domains with their tool indexes (what tools and actions each domain provides). " +
|
|
122
|
+
"Use action 'lookup' with a toolName to find the owning domain and exact load command. " +
|
|
68
123
|
"Use action 'load' with a domain name or 'all' to load tools.", {
|
|
69
|
-
action: z.enum(["list", "load"]).describe("'list' shows domain status with tool indexes; 'load' registers tools for a domain"),
|
|
124
|
+
action: z.enum(["list", "load", "lookup"]).describe("'list' shows domain status with tool indexes; 'lookup' maps a tool name to its domain/load command; 'load' registers tools for a domain"),
|
|
70
125
|
domain: z.string().optional()
|
|
71
126
|
.describe("Domain to load (required for 'load' action). Use 'all' to load everything."),
|
|
127
|
+
toolName: z.string().optional()
|
|
128
|
+
.describe("Tool name to look up (required for 'lookup' action), e.g. telora_reality_tree."),
|
|
72
129
|
}, wrapHandler(async (params) => {
|
|
73
130
|
if (params.action === "list") {
|
|
74
131
|
const alwaysLoaded = startupNames.map((d) => ({
|
|
@@ -77,17 +134,33 @@ export function registerDiscoverTool(server, domains, startupDomains) {
|
|
|
77
134
|
alwaysLoaded: true,
|
|
78
135
|
description: startupDomains[d].description,
|
|
79
136
|
keywords: startupDomains[d].keywords,
|
|
80
|
-
toolIndex: startupDomains[d].toolIndex,
|
|
137
|
+
toolIndex: projectToolIndex(d, startupDomains[d].toolIndex, true, true),
|
|
81
138
|
}));
|
|
82
139
|
const onDemand = projectDomainsForList(domains, loaded);
|
|
83
140
|
return successResult({ domains: [...alwaysLoaded, ...onDemand] });
|
|
84
141
|
}
|
|
142
|
+
if (params.action === "lookup") {
|
|
143
|
+
if (!params.toolName) {
|
|
144
|
+
return validationError("toolName is required for lookup action");
|
|
145
|
+
}
|
|
146
|
+
const matches = lookupTools(params.toolName, domains, loaded, startupDomains);
|
|
147
|
+
if (matches.length === 0) {
|
|
148
|
+
return validationError(`Unknown tool '${params.toolName}'. Use action 'list' to inspect known domains and tool indexes.`);
|
|
149
|
+
}
|
|
150
|
+
return successResult({
|
|
151
|
+
toolName: params.toolName,
|
|
152
|
+
matches,
|
|
153
|
+
recovery: formatLookupRecovery(matches),
|
|
154
|
+
});
|
|
155
|
+
}
|
|
85
156
|
// action === "load"
|
|
86
157
|
if (!params.domain) {
|
|
87
158
|
return validationError("domain is required for load action");
|
|
88
159
|
}
|
|
89
160
|
if (params.domain !== "all" && !domainNames.includes(params.domain)) {
|
|
90
|
-
|
|
161
|
+
const matches = lookupTools(params.domain, domains, loaded, startupDomains);
|
|
162
|
+
const recovery = matches.length > 0 ? ` ${formatLookupRecovery(matches)}` : "";
|
|
163
|
+
return validationError(`Unknown domain '${params.domain}'. Available domains: ${domainNames.join(", ")}, all.${recovery}`);
|
|
91
164
|
}
|
|
92
165
|
const toLoad = params.domain === "all"
|
|
93
166
|
? domainNames.filter((d) => !loaded.has(d))
|
|
@@ -97,8 +170,8 @@ export function registerDiscoverTool(server, domains, startupDomains) {
|
|
|
97
170
|
if (toLoad.length === 0) {
|
|
98
171
|
const msg = params.domain === "all"
|
|
99
172
|
? "All domains already loaded."
|
|
100
|
-
: `Domain '${params.domain}' is already loaded.`;
|
|
101
|
-
return successResult({ message: msg, loaded: [...loaded] });
|
|
173
|
+
: `Domain '${params.domain}' is already loaded. If its tools are still not callable, refresh the MCP tool list or reconnect this MCP session.`;
|
|
174
|
+
return successResult({ message: msg, loaded: [...loaded], callableAvailability: "server-domain-loaded-client-refresh-may-be-required" });
|
|
102
175
|
}
|
|
103
176
|
for (const d of toLoad) {
|
|
104
177
|
domains[d].register();
|
|
@@ -114,6 +187,9 @@ export function registerDiscoverTool(server, domains, startupDomains) {
|
|
|
114
187
|
return successResult({
|
|
115
188
|
message: `Loaded ${toLoad.length} domain(s): ${toLoad.join(", ")}`,
|
|
116
189
|
loaded: [...loaded],
|
|
190
|
+
loadedToolIndex: toLoad.flatMap((d) => projectToolIndex(d, domains[d].toolIndex, true, false)),
|
|
191
|
+
callableAvailability: "server-domain-loaded-client-refresh-may-be-required",
|
|
192
|
+
recovery: "The server registered the domain and sent a tool-list changed notification. If a listed tool is still absent from the callable tool surface, refresh the MCP tool list or reconnect this MCP session.",
|
|
117
193
|
...(guides.length > 0 ? { authoringGuides: guides } : {}),
|
|
118
194
|
});
|
|
119
195
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discoverHandler.js","sourceRoot":"","sources":["../../src/handlers/discoverHandler.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gEAAgE;AAChE,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,4EAA4E;AAC5E,0DAA0D;AAC1D,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"discoverHandler.js","sourceRoot":"","sources":["../../src/handlers/discoverHandler.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gEAAgE;AAChE,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,4EAA4E;AAC5E,0DAA0D;AAC1D,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA4D3E,SAAS,gBAAgB,CAAC,MAAc;IACtC,OAAO,kDAAkD,MAAM,KAAK,CAAC;AACvE,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,QAAgB,EAAE,MAAe,EAAE,YAAqB;IACjG,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,QAAQ,iCAAiC,MAAM,yCAAyC,CAAC;IACrG,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,GAAG,MAAM,uCAAuC,QAAQ,kFAAkF,CAAC;IACpJ,CAAC;IACD,OAAO,YAAY,MAAM,0BAA0B,QAAQ,GAAG,CAAC;AACjE,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAc,EACd,SAA2B,EAC3B,MAAe,EACf,YAAqB;IAErB,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,GAAG,IAAI;QACP,MAAM;QACN,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC3D,YAAY,EAAE,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;KACzE,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAuB,EACvB,MAA2B;IAE3B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,OAAO,GAAsB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnB,YAAY,EAAE,KAAc;QAC5B,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;QACnC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ;QAC7B,SAAS,EAAE,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;QACxE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU;KAClC,CAAC,CAAC,CAAC;IAEJ,6EAA6E;IAC7E,iDAAiD;IACjD,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACzB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC;QAChC,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC;QAChC,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,OAAuB,EACvB,MAA2B,EAC3B,cAA8C;IAE9C,MAAM,OAAO,GAAsB,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACvE,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;YAChF,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAA0B;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,OAAO;SACX,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,IAAI,KAAK,CAAC,YAAY;YAAE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,gCAAgC,KAAK,CAAC,MAAM,IAAI,CAAC;QAClG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,8BAA8B,KAAK,CAAC,MAAM,yFAAyF,CAAC;QAC/J,CAAC;QACD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,gCAAgC,KAAK,CAAC,MAAM,mBAAmB,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC;IACpH,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AASD,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,OAAuB,EACvB,cAA8C;IAE9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAEvD,gDAAgD;IAChD,MAAM,aAAa,GAAG,WAAW;SAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC/C,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,uFAAuF;IACvF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ;YAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,4EAA4E;QAC5E,iFAAiF;QACjF,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO;QACrC,sBAAsB,GAAG,aAAa,GAAG,MAAM;QAC/C,8GAA8G;QAC9G,wFAAwF;QACxF,8DAA8D,EAC9D;QACE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,yIAAyI,CAAC;QAC9L,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC1B,QAAQ,CAAC,4EAA4E,CAAC;QACzF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAC5B,QAAQ,CAAC,gFAAgF,CAAC;KAC9F,EACD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,IAAI;gBAClB,WAAW,EAAG,cAAgD,CAAC,CAAC,CAAC,CAAC,WAAW;gBAC7E,QAAQ,EAAG,cAAgD,CAAC,CAAC,CAAC,CAAC,QAAQ;gBACvE,SAAS,EAAE,gBAAgB,CAAC,CAAC,EAAG,cAAgD,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;aAC3G,CAAC,CAAC,CAAC;YACJ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACxD,OAAO,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACrB,OAAO,eAAe,CAAC,wCAAwC,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,eAAe,CAAC,iBAAiB,MAAM,CAAC,QAAQ,iEAAiE,CAAC,CAAC;YAC5H,CAAC;YACD,OAAO,aAAa,CAAC;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO;gBACP,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,eAAe,CAAC,oCAAoC,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,OAAO,eAAe,CAAC,mBAAmB,MAAM,CAAC,MAAM,yBAAyB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;QAC7H,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK;YACpC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3C,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;gBACzB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK;gBACjC,CAAC,CAAC,6BAA6B;gBAC/B,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,oHAAoH,CAAC;YACjJ,OAAO,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,oBAAoB,EAAE,qDAAqD,EAAE,CAAC,CAAC;QAC3I,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;QAED,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAE7B,wEAAwE;QACxE,uEAAuE;QACvE,8DAA8D;QAC9D,MAAM,MAAM,GAAG,MAAM;aAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;aAC7D,MAAM,CAAC,CAAC,CAAC,EAA0C,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAE3E,OAAO,aAAa,CAAC;YACnB,OAAO,EAAE,UAAU,MAAM,CAAC,MAAM,eAAe,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAClE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;YACnB,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC9F,oBAAoB,EAAE,qDAAqD;YAC3E,QAAQ,EAAE,uMAAuM;YACjN,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -11,4 +11,12 @@ export interface NextSteps {
|
|
|
11
11
|
instruction: string;
|
|
12
12
|
next_tool: string | null;
|
|
13
13
|
next_action: string | null;
|
|
14
|
+
tool_requirement?: NextStepsToolRequirement;
|
|
15
|
+
}
|
|
16
|
+
export interface NextStepsToolRequirement {
|
|
17
|
+
domain: string;
|
|
18
|
+
tool: string;
|
|
19
|
+
action: string | null;
|
|
20
|
+
load_command: string;
|
|
21
|
+
callable_hint: string;
|
|
14
22
|
}
|