@xanots/sdk 0.0.3-beta.0 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/.build-fingerprint +1 -1
- package/dist/{agent-file-refresh-J3KY54E5.js → agent-file-refresh-6M5M7T24.js} +3 -3
- package/dist/bin.js +3 -3
- package/dist/{chunk-CBL57QBQ.js → chunk-2V4YE6QC.js} +6 -6
- package/dist/{chunk-VVXPK6SE.js → chunk-3NFUWXOC.js} +24 -16
- package/dist/{chunk-FY6LXRR6.js → chunk-6USV65XA.js} +2 -2
- package/dist/{chunk-MWLNBSTY.js → chunk-BT2CSEC5.js} +2 -2
- package/dist/{chunk-WRYT2PAX.js → chunk-CMZLPTGW.js} +24 -36
- package/dist/{chunk-QO4I5OYF.js → chunk-DYCLVQXW.js} +12 -3
- package/dist/{chunk-4HKZH6YK.js → chunk-HQ2CBRVI.js} +230 -7
- package/dist/{chunk-HKAX756N.js → chunk-W2G2WPTB.js} +3 -3
- package/dist/chunk-WUSKBXXD.js +25 -0
- package/dist/{chunk-EWFHDJY5.js → chunk-ZO3HJOCJ.js} +2 -2
- package/dist/cli.d.ts +9 -0
- package/dist/cli.js +3 -3
- package/dist/{codegen-command-EXLKZ2ZI.js → codegen-command-FIADGXRN.js} +8 -8
- package/dist/{completion-2PVZK6YX.js → completion-BKAFCZBE.js} +2 -2
- package/dist/{deploy-command-SXX6RJWM.js → deploy-command-4R6BYC6G.js} +7 -7
- package/dist/{env-target-3EGIPR4D.js → env-target-XWS2ZZ2Y.js} +2 -2
- package/dist/{ephemeral-command-OGOYP7D6.js → ephemeral-command-JL4TPIRQ.js} +5 -5
- package/dist/{init-command-6DGXEVZD.js → init-command-LOK75W64.js} +7 -7
- package/dist/internal.js +4 -3
- package/dist/{lock-commands-R22J54XV.js → lock-commands-XOYS75YQ.js} +4 -4
- package/dist/{marketplace-command-XJIWL4YP.js → marketplace-command-UVV3XAOL.js} +4 -4
- package/dist/node.js +3 -3
- package/dist/{release-command-6PLMLGDK.js → release-command-HZUY2XZX.js} +8 -8
- package/dist/{test-command-LLPXKT35.js → test-command-72Y5S22H.js} +4 -4
- package/dist/{validate-command-WAT3ZJT3.js → validate-command-KDGH537H.js} +5 -5
- package/dist/{workspace-command-JKMI7RZ4.js → workspace-command-ICSI6PKO.js} +8 -8
- package/llms/kinds-agent-mcp.md +2 -1
- package/llms-full.txt +3 -2
- package/llms.txt +1 -1
- package/manifest.json +5 -1
- package/package.json +1 -1
- package/dist/chunk-47WDWMBJ.js +0 -14
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compileBundle
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3NFUWXOC.js";
|
|
4
4
|
import {
|
|
5
5
|
missingArgument
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6USV65XA.js";
|
|
7
7
|
|
|
8
8
|
// src/emit/bundle-input.ts
|
|
9
9
|
import { existsSync, readFileSync } from "fs";
|
|
@@ -34,4 +34,4 @@ export {
|
|
|
34
34
|
assertBundleInput,
|
|
35
35
|
loadBundleText
|
|
36
36
|
};
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
37
|
+
//# sourceMappingURL=chunk-W2G2WPTB.js.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/emit/npm.ts
|
|
2
|
+
import { spawnSync } from "child_process";
|
|
3
|
+
function npmBinary() {
|
|
4
|
+
return process.platform === "win32" ? "npm.cmd" : "npm";
|
|
5
|
+
}
|
|
6
|
+
function runNpm(args, cwd) {
|
|
7
|
+
const res = spawnSync(npmBinary(), [...args], { cwd, stdio: "inherit" });
|
|
8
|
+
return res.status ?? 1;
|
|
9
|
+
}
|
|
10
|
+
function runNpmCapturingStderr(args, cwd) {
|
|
11
|
+
const res = spawnSync(npmBinary(), [...args], {
|
|
12
|
+
cwd,
|
|
13
|
+
stdio: ["inherit", "inherit", "pipe"],
|
|
14
|
+
encoding: "utf8"
|
|
15
|
+
});
|
|
16
|
+
const stderr = res.stderr ?? "";
|
|
17
|
+
if (stderr !== "") process.stderr.write(stderr);
|
|
18
|
+
return { status: res.status ?? 1, stderr };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
runNpm,
|
|
23
|
+
runNpmCapturingStderr
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=chunk-WUSKBXXD.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
UsageError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6USV65XA.js";
|
|
4
4
|
import {
|
|
5
5
|
style
|
|
6
6
|
} from "./chunk-EZG76F7R.js";
|
|
@@ -26,4 +26,4 @@ async function confirm(message, opts) {
|
|
|
26
26
|
export {
|
|
27
27
|
confirm
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
29
|
+
//# sourceMappingURL=chunk-ZO3HJOCJ.js.map
|
package/dist/cli.d.ts
CHANGED
|
@@ -159,6 +159,15 @@ interface ParsedArgs {
|
|
|
159
159
|
* else write none. Validated in the init command, not at parse time.
|
|
160
160
|
*/
|
|
161
161
|
ai: string[];
|
|
162
|
+
/**
|
|
163
|
+
* `init` `--marketplace <pkg>` (repeatable, comma-separated): marketplace
|
|
164
|
+
* add-ons to install into the new project and register in `xano/index.ts`.
|
|
165
|
+
*
|
|
166
|
+
* One flag rather than a follow-up command so that the whole project is one
|
|
167
|
+
* reproducible line — which is the promise onboarding makes when it prints
|
|
168
|
+
* the command it ran. Validated in `init-modules.ts`, not at parse time.
|
|
169
|
+
*/
|
|
170
|
+
marketplace: string[];
|
|
162
171
|
/**
|
|
163
172
|
* `init`/`codegen` `--framework <id>`: which frontend to scaffold
|
|
164
173
|
* (`react`/`svelte`). Undefined = prompt in a TTY, else the default.
|
package/dist/cli.js
CHANGED
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
resolveHelpRequest,
|
|
9
9
|
resolveLockPath,
|
|
10
10
|
run
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-3NFUWXOC.js";
|
|
12
|
+
import "./chunk-6USV65XA.js";
|
|
13
13
|
import "./chunk-HJPTWBLH.js";
|
|
14
14
|
import "./chunk-EZG76F7R.js";
|
|
15
15
|
import "./chunk-GNPVYOPB.js";
|
|
16
16
|
import "./chunk-55VHDNW5.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-DYCLVQXW.js";
|
|
18
18
|
import "./chunk-5L4X5LS6.js";
|
|
19
19
|
import "./chunk-WHOJWOSV.js";
|
|
20
20
|
import "./chunk-5XZ744TS.js";
|
|
@@ -4,13 +4,13 @@ import {
|
|
|
4
4
|
isMissingDependencyError,
|
|
5
5
|
runCodegenCommand,
|
|
6
6
|
verifyCrashEntry
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2V4YE6QC.js";
|
|
8
8
|
import "./chunk-P3TTMWUP.js";
|
|
9
9
|
import "./chunk-QTNO2WD6.js";
|
|
10
10
|
import "./chunk-ZUTSMMAG.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-HQ2CBRVI.js";
|
|
12
|
+
import "./chunk-CMZLPTGW.js";
|
|
13
|
+
import "./chunk-WUSKBXXD.js";
|
|
14
14
|
import "./chunk-3IGNIP6R.js";
|
|
15
15
|
import "./chunk-C56BC2FY.js";
|
|
16
16
|
import "./chunk-7REDODS2.js";
|
|
@@ -21,13 +21,13 @@ import "./chunk-YZ4GU6F5.js";
|
|
|
21
21
|
import "./chunk-6DHJVLYP.js";
|
|
22
22
|
import "./chunk-4BXJGVZ3.js";
|
|
23
23
|
import "./chunk-U3G2UW65.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-3NFUWXOC.js";
|
|
25
|
+
import "./chunk-6USV65XA.js";
|
|
26
26
|
import "./chunk-HJPTWBLH.js";
|
|
27
27
|
import "./chunk-EZG76F7R.js";
|
|
28
28
|
import "./chunk-GNPVYOPB.js";
|
|
29
29
|
import "./chunk-55VHDNW5.js";
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-DYCLVQXW.js";
|
|
31
31
|
import "./chunk-5L4X5LS6.js";
|
|
32
32
|
import "./chunk-WHOJWOSV.js";
|
|
33
33
|
import "./chunk-5XZ744TS.js";
|
|
@@ -39,4 +39,4 @@ export {
|
|
|
39
39
|
runCodegenCommand,
|
|
40
40
|
verifyCrashEntry
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=codegen-command-
|
|
42
|
+
//# sourceMappingURL=codegen-command-FIADGXRN.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getCommand,
|
|
6
6
|
liveCommandNames,
|
|
7
7
|
liveSubcommandNames
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-DYCLVQXW.js";
|
|
9
9
|
|
|
10
10
|
// src/emit/completion.ts
|
|
11
11
|
var COMPLETION_SHELLS = ["bash", "zsh", "fish"];
|
|
@@ -295,4 +295,4 @@ export {
|
|
|
295
295
|
renderCompletion,
|
|
296
296
|
runCompletionCommand
|
|
297
297
|
};
|
|
298
|
-
//# sourceMappingURL=completion-
|
|
298
|
+
//# sourceMappingURL=completion-BKAFCZBE.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
assertBundleInput,
|
|
3
3
|
loadBundleText
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-W2G2WPTB.js";
|
|
5
5
|
import {
|
|
6
6
|
importWorkspaceArchive
|
|
7
7
|
} from "./chunk-5WGEURVI.js";
|
|
@@ -42,10 +42,10 @@ import {
|
|
|
42
42
|
} from "./chunk-C56BC2FY.js";
|
|
43
43
|
import "./chunk-7REDODS2.js";
|
|
44
44
|
import "./chunk-X4DVXBFY.js";
|
|
45
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-3NFUWXOC.js";
|
|
46
46
|
import {
|
|
47
47
|
assertWritableDest
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-6USV65XA.js";
|
|
49
49
|
import "./chunk-HJPTWBLH.js";
|
|
50
50
|
import {
|
|
51
51
|
blank,
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
} from "./chunk-EZG76F7R.js";
|
|
64
64
|
import "./chunk-GNPVYOPB.js";
|
|
65
65
|
import "./chunk-55VHDNW5.js";
|
|
66
|
-
import "./chunk-
|
|
66
|
+
import "./chunk-DYCLVQXW.js";
|
|
67
67
|
import "./chunk-5L4X5LS6.js";
|
|
68
68
|
import "./chunk-WHOJWOSV.js";
|
|
69
69
|
import "./chunk-5XZ744TS.js";
|
|
@@ -158,7 +158,7 @@ async function runDeployedTests(auth, dest, summary, args) {
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
async function runTestsOrThrow(auth, dest, summary, args) {
|
|
161
|
-
const { runSuite, EXIT_TESTS_FAILED } = await import("./test-command-
|
|
161
|
+
const { runSuite, EXIT_TESTS_FAILED } = await import("./test-command-72Y5S22H.js");
|
|
162
162
|
let target;
|
|
163
163
|
if (dest === "ephemeral") {
|
|
164
164
|
if (summary.url === void 0) {
|
|
@@ -168,7 +168,7 @@ async function runTestsOrThrow(auth, dest, summary, args) {
|
|
|
168
168
|
const name = summary.ephemeral?.name;
|
|
169
169
|
target = { base: summary.url, workspaceId: 1, label: name ? `ephemeral ${name}` : "the ephemeral", env: name };
|
|
170
170
|
} else {
|
|
171
|
-
const { resolveMetaTarget } = await import("./env-target-
|
|
171
|
+
const { resolveMetaTarget } = await import("./env-target-XWS2ZZ2Y.js");
|
|
172
172
|
target = await resolveMetaTarget(auth, { dest: "sandbox" });
|
|
173
173
|
}
|
|
174
174
|
const outcomes = await runSuite(auth, target, {
|
|
@@ -448,4 +448,4 @@ export {
|
|
|
448
448
|
runDeployedTests,
|
|
449
449
|
verifyMicroservices
|
|
450
450
|
};
|
|
451
|
-
//# sourceMappingURL=deploy-command-
|
|
451
|
+
//# sourceMappingURL=deploy-command-4R6BYC6G.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveMetaTarget
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BT2CSEC5.js";
|
|
4
4
|
import "./chunk-DGSF2Q5H.js";
|
|
5
5
|
import "./chunk-7DKX2SPN.js";
|
|
6
6
|
import "./chunk-NDZFBZHC.js";
|
|
@@ -13,4 +13,4 @@ import "./chunk-GNPVYOPB.js";
|
|
|
13
13
|
export {
|
|
14
14
|
resolveMetaTarget
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=env-target-
|
|
16
|
+
//# sourceMappingURL=env-target-XWS2ZZ2Y.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
confirm
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZO3HJOCJ.js";
|
|
4
4
|
import {
|
|
5
5
|
deleteEphemeral,
|
|
6
6
|
getEphemeral,
|
|
@@ -41,7 +41,7 @@ import "./chunk-7REDODS2.js";
|
|
|
41
41
|
import "./chunk-X4DVXBFY.js";
|
|
42
42
|
import {
|
|
43
43
|
unknownSubcommand
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-6USV65XA.js";
|
|
45
45
|
import {
|
|
46
46
|
detail,
|
|
47
47
|
formatExpiration,
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
warn
|
|
54
54
|
} from "./chunk-EZG76F7R.js";
|
|
55
55
|
import "./chunk-GNPVYOPB.js";
|
|
56
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-DYCLVQXW.js";
|
|
57
57
|
|
|
58
58
|
// src/emit/ephemeral-command.ts
|
|
59
59
|
import { writeFileSync } from "fs";
|
|
@@ -90,7 +90,7 @@ async function runEphemeralCommand(args) {
|
|
|
90
90
|
case "impersonate":
|
|
91
91
|
return runImpersonate(args);
|
|
92
92
|
case "codegen": {
|
|
93
|
-
const { runCodegenCommand } = await import("./codegen-command-
|
|
93
|
+
const { runCodegenCommand } = await import("./codegen-command-FIADGXRN.js");
|
|
94
94
|
return runCodegenCommand(args, { kind: "ephemeral" });
|
|
95
95
|
}
|
|
96
96
|
default:
|
|
@@ -239,4 +239,4 @@ export {
|
|
|
239
239
|
resolveLive,
|
|
240
240
|
runEphemeralCommand
|
|
241
241
|
};
|
|
242
|
-
//# sourceMappingURL=ephemeral-command-
|
|
242
|
+
//# sourceMappingURL=ephemeral-command-JL4TPIRQ.js.map
|
|
@@ -2,20 +2,20 @@ import {
|
|
|
2
2
|
projectShellFiles,
|
|
3
3
|
runInitCommand,
|
|
4
4
|
sanitizeAppName
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-HQ2CBRVI.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveAiFlags
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-CMZLPTGW.js";
|
|
9
|
+
import "./chunk-WUSKBXXD.js";
|
|
10
10
|
import "./chunk-YZ4GU6F5.js";
|
|
11
11
|
import "./chunk-6DHJVLYP.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-3NFUWXOC.js";
|
|
13
|
+
import "./chunk-6USV65XA.js";
|
|
14
14
|
import "./chunk-HJPTWBLH.js";
|
|
15
15
|
import "./chunk-EZG76F7R.js";
|
|
16
16
|
import "./chunk-GNPVYOPB.js";
|
|
17
17
|
import "./chunk-55VHDNW5.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-DYCLVQXW.js";
|
|
19
19
|
import "./chunk-5L4X5LS6.js";
|
|
20
20
|
import "./chunk-WHOJWOSV.js";
|
|
21
21
|
import "./chunk-5XZ744TS.js";
|
|
@@ -26,4 +26,4 @@ export {
|
|
|
26
26
|
runInitCommand,
|
|
27
27
|
sanitizeAppName
|
|
28
28
|
};
|
|
29
|
-
//# sourceMappingURL=init-command-
|
|
29
|
+
//# sourceMappingURL=init-command-LOK75W64.js.map
|
package/dist/internal.js
CHANGED
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
GLOBAL_FLAGS,
|
|
63
63
|
flagKey,
|
|
64
64
|
flagSummary
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-DYCLVQXW.js";
|
|
66
66
|
import {
|
|
67
67
|
DECODE_ONLY_STATEMENTS,
|
|
68
68
|
FILTER_NAMES,
|
|
@@ -1292,13 +1292,14 @@ function renderSections(m) {
|
|
|
1292
1292
|
""
|
|
1293
1293
|
];
|
|
1294
1294
|
const kindsAgentMcp = [
|
|
1295
|
-
"- `mcpServer({ name, guid?, description?, instructions?, docs?, enabled?, canonical?, spec?, tags?, history?, tools?, llm?, output? })` \u2014 an MCP toolset. `llm?`/`output?` are the same blocks `agent()` takes and are usually absent: an MCP server and an agent are ONE stored object distinguished by `type
|
|
1295
|
+
"- `mcpServer({ name, guid?, description?, instructions?, docs?, enabled?, canonical?, spec?, tags?, history?, tools?, llm?, output? })` \u2014 an MCP toolset. `llm?`/`output?` are the same blocks `agent()` takes and are usually absent: an MCP server and an agent are ONE stored object distinguished by `type`. Returns a handle with `getPath()`/`getUrl(baseUrl)` for the Streamable-HTTP endpoint \u2014 `getUrl` is NOT idempotent, a `baseUrl` already carrying an `/x2/mcp/<\u2026>/stream` path THROWS, so resolve ONCE from the instance base URL. Fires on an ephemeral; not in sandbox.",
|
|
1296
1296
|
" - `tools?`: a `ToolsetToolEntry[]`. Pass the `tool()` HANDLES directly (`tools: [saveNote]`), like every other collection in the SDK; use the `{ tool, enabled?, auth? }` wrapper only when a tool needs `enabled: false` or per-tool `auth`. `auth` names an auth **table** (a `table({ auth: true })` handle or its name) \u2014 Xano's ONLY MCP auth surface (per-tool; there is no server-level gate). An entry that names no tool (no handle, no `id`) THROWS at export rather than emitting the `id: 0` null reference it used to; a deliberate raw `id: 0` warns and is carried through, so a pulled workspace still round-trips.",
|
|
1297
1297
|
"- `agent({ name, guid?, description?, docs?, enabled?, canonical?, tags?, history?, llm, tools?, output? })` \u2014 an LLM orchestrator. No top-level `instructions`/`prompt`/`spec` \u2014 the prompt lives under `llm`. Invoke from a stack with `s.ai.agent.run({ agent, args })`.",
|
|
1298
1298
|
' - `llm` (REQUIRED): typed provider settings, a discriminated union on `type` (`"xano-free" | "anthropic" | "openai" | "google-genai"`). Shared fields: `systemPrompt?`, `maxSteps?` (default `5`), and `prompt?` XOR `messages?` (genuinely exclusive: both is a type error and throws \u2014 the engine stores ONE `prompt_type`, so one would be dropped); plus provider fields (`apiKey?`, `model?`, `temperature?`, `reasoningEffort?`, \u2026). String fields accept Twig placeholders \u2014 `{{ $args.x }}` for run inputs (the `args` of `s.ai.agent.run`), `{{ $env.NAME }}` for env vars.',
|
|
1299
1299
|
" - `tools?`: same `ToolsetToolEntry[]` as `mcpServer` \u2014 bare `tool()` handles, or a `{ tool, enabled?, auth? }` wrapper when one needs `enabled`/`auth`.",
|
|
1300
1300
|
' - `output?`: `{ schema: Record<string, input.*>, enabled? }` \u2014 structured-output schema. `schema` is a named-field record authored with the `input.*` catalog, exactly like a `defineFunction`/`query` `input:` map (the stored `structuredOutputsSchema` is the same wire shape as function inputs). e.g. `output: { schema: { priority: input.enum(["low","high"]), summary: input.text() } }`. When you pass the agent *handle* to `s.ai.agent.run({ agent })`, `.result` is typed straight from this schema \u2014 no `resultShape` witness needed (the shape is declared once). `resultShape` remains only to override that, or to type an agent referenced by bare name.',
|
|
1301
|
-
' - **Run + read recipe (`s.ai.agent.run`):** bind the run to a var (`s.ai.agent.run({ agent, args, as: "run" })`) \u2014 it produces a rich envelope, and the completion is at **`.result`**. Read one structured field with a dotted ref (`response: ref("run.result.priority")`) or the whole completion (`ref("run.result")`, typed from `output.schema`); persist it in a later step the same way (`s.set_var({ name, value: ref("run.result.summary") })`). `args` is a plain object of run inputs (`{ topic: inp("topic") }` \u2014 raw literals are fine, e.g. `{ max_steps: 3 }`) surfaced to the agent as `{{ $args.topic }}`. Tool-call / per-step data (when tools ran) rides `.toolCalls` / `.steps` on the same envelope \u2014 both optional, absent or empty when no tools executed.'
|
|
1301
|
+
' - **Run + read recipe (`s.ai.agent.run`):** bind the run to a var (`s.ai.agent.run({ agent, args, as: "run" })`) \u2014 it produces a rich envelope, and the completion is at **`.result`**. Read one structured field with a dotted ref (`response: ref("run.result.priority")`) or the whole completion (`ref("run.result")`, typed from `output.schema`); persist it in a later step the same way (`s.set_var({ name, value: ref("run.result.summary") })`). `args` is a plain object of run inputs (`{ topic: inp("topic") }` \u2014 raw literals are fine, e.g. `{ max_steps: 3 }`) surfaced to the agent as `{{ $args.topic }}`. Tool-call / per-step data (when tools ran) rides `.toolCalls` / `.steps` on the same envelope \u2014 both optional, absent or empty when no tools executed.',
|
|
1302
|
+
" - **Marketplace:** for chat history, use `@xanots/chatbot`; for vector RAG, use `@xanots/vector` (`tools: [vector.searchTool]`). Find add-ons with `xanots marketplace search <q>`."
|
|
1302
1303
|
];
|
|
1303
1304
|
const kindsRealtime = [
|
|
1304
1305
|
"- **Realtime** \u2014 the only three-level chain: `realtimeServer` owns `realtimeChannel`s, which own `realtimeMessage` handlers. Pass the HANDLE, not a name (a channel path is unique only within its server).",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadDefault
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-3NFUWXOC.js";
|
|
4
4
|
import {
|
|
5
5
|
UsageError,
|
|
6
6
|
missingArgument,
|
|
7
7
|
unknownSubcommand
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-6USV65XA.js";
|
|
9
9
|
import {
|
|
10
10
|
readLockFile,
|
|
11
11
|
writeLockFile
|
|
@@ -15,7 +15,7 @@ import "./chunk-GNPVYOPB.js";
|
|
|
15
15
|
import {
|
|
16
16
|
Xano
|
|
17
17
|
} from "./chunk-55VHDNW5.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-DYCLVQXW.js";
|
|
19
19
|
import "./chunk-5L4X5LS6.js";
|
|
20
20
|
import "./chunk-WHOJWOSV.js";
|
|
21
21
|
import "./chunk-5XZ744TS.js";
|
|
@@ -229,4 +229,4 @@ ${lines}
|
|
|
229
229
|
export {
|
|
230
230
|
runLockCommand
|
|
231
231
|
};
|
|
232
|
-
//# sourceMappingURL=lock-commands-
|
|
232
|
+
//# sourceMappingURL=lock-commands-XOYS75YQ.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-NUQCEOKA.js";
|
|
5
5
|
import {
|
|
6
6
|
runNpm
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-WUSKBXXD.js";
|
|
8
8
|
import {
|
|
9
9
|
serverMessage
|
|
10
10
|
} from "./chunk-3IGNIP6R.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
UsageError,
|
|
13
13
|
indentBlock,
|
|
14
14
|
missingArgument
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-6USV65XA.js";
|
|
16
16
|
import {
|
|
17
17
|
blank,
|
|
18
18
|
detail,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
success,
|
|
24
24
|
warn
|
|
25
25
|
} from "./chunk-EZG76F7R.js";
|
|
26
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-DYCLVQXW.js";
|
|
27
27
|
|
|
28
28
|
// src/emit/marketplace-command.ts
|
|
29
29
|
import { existsSync, readFileSync } from "fs";
|
|
@@ -376,4 +376,4 @@ export {
|
|
|
376
376
|
runMarketplaceListCommand,
|
|
377
377
|
runMarketplaceSearchCommand
|
|
378
378
|
};
|
|
379
|
-
//# sourceMappingURL=marketplace-command-
|
|
379
|
+
//# sourceMappingURL=marketplace-command-UVV3XAOL.js.map
|
package/dist/node.js
CHANGED
|
@@ -108,8 +108,8 @@ import {
|
|
|
108
108
|
run,
|
|
109
109
|
writeArtifact,
|
|
110
110
|
writeBundle
|
|
111
|
-
} from "./chunk-
|
|
112
|
-
import "./chunk-
|
|
111
|
+
} from "./chunk-3NFUWXOC.js";
|
|
112
|
+
import "./chunk-6USV65XA.js";
|
|
113
113
|
import {
|
|
114
114
|
readLockFile,
|
|
115
115
|
writeLockFile
|
|
@@ -120,7 +120,7 @@ import {
|
|
|
120
120
|
Xano,
|
|
121
121
|
workspace
|
|
122
122
|
} from "./chunk-55VHDNW5.js";
|
|
123
|
-
import "./chunk-
|
|
123
|
+
import "./chunk-DYCLVQXW.js";
|
|
124
124
|
import {
|
|
125
125
|
LAMBDA_BINDINGS,
|
|
126
126
|
LAMBDA_CODE_FILTERS,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
assertBundleInput,
|
|
3
3
|
loadBundleText
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-W2G2WPTB.js";
|
|
5
5
|
import {
|
|
6
6
|
importWorkspaceArchive,
|
|
7
7
|
planWorkspaceImport
|
|
8
8
|
} from "./chunk-5WGEURVI.js";
|
|
9
9
|
import {
|
|
10
10
|
confirm
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZO3HJOCJ.js";
|
|
12
12
|
import {
|
|
13
13
|
encodeWorkspaceArchive
|
|
14
14
|
} from "./chunk-ZUTSMMAG.js";
|
|
@@ -24,11 +24,11 @@ import "./chunk-7REDODS2.js";
|
|
|
24
24
|
import "./chunk-X4DVXBFY.js";
|
|
25
25
|
import {
|
|
26
26
|
resolveLockPath
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-3NFUWXOC.js";
|
|
28
28
|
import {
|
|
29
29
|
UsageError,
|
|
30
30
|
assertWritableDest
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-6USV65XA.js";
|
|
32
32
|
import {
|
|
33
33
|
readLockFile
|
|
34
34
|
} from "./chunk-HJPTWBLH.js";
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
} from "./chunk-EZG76F7R.js";
|
|
44
44
|
import "./chunk-GNPVYOPB.js";
|
|
45
45
|
import "./chunk-55VHDNW5.js";
|
|
46
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-DYCLVQXW.js";
|
|
47
47
|
import "./chunk-5L4X5LS6.js";
|
|
48
48
|
import "./chunk-WHOJWOSV.js";
|
|
49
49
|
import "./chunk-5XZ744TS.js";
|
|
@@ -338,7 +338,7 @@ async function runReleaseCommand(args) {
|
|
|
338
338
|
{ withSeed: req.records === true }
|
|
339
339
|
);
|
|
340
340
|
if (args.static !== void 0) {
|
|
341
|
-
const { assertNoSeedLeaks } = await import("./deploy-command-
|
|
341
|
+
const { assertNoSeedLeaks } = await import("./deploy-command-4R6BYC6G.js");
|
|
342
342
|
await assertNoSeedLeaks(args.static, nonPublicSeedValues, args.allowSeedInStatic);
|
|
343
343
|
}
|
|
344
344
|
const workspaceId = auth.workspaceId;
|
|
@@ -405,7 +405,7 @@ async function runReleaseCommand(args) {
|
|
|
405
405
|
unchangedEnv: losses.unchangedEnv
|
|
406
406
|
};
|
|
407
407
|
if (args.static !== void 0) {
|
|
408
|
-
const { buildStaticEnv, deployStaticTo } = await import("./deploy-command-
|
|
408
|
+
const { buildStaticEnv, deployStaticTo } = await import("./deploy-command-4R6BYC6G.js");
|
|
409
409
|
const env = buildStaticEnv(auth.instance, args.staticEnv);
|
|
410
410
|
const explicit = Object.keys(args.staticEnv).length > 0;
|
|
411
411
|
summary.static = await deployStaticTo(
|
|
@@ -424,4 +424,4 @@ async function runReleaseCommand(args) {
|
|
|
424
424
|
export {
|
|
425
425
|
runReleaseCommand
|
|
426
426
|
};
|
|
427
|
-
//# sourceMappingURL=release-command-
|
|
427
|
+
//# sourceMappingURL=release-command-HZUY2XZX.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
resolveMetaTarget
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BT2CSEC5.js";
|
|
4
4
|
import "./chunk-DGSF2Q5H.js";
|
|
5
5
|
import "./chunk-7DKX2SPN.js";
|
|
6
6
|
import "./chunk-NDZFBZHC.js";
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
import "./chunk-7REDODS2.js";
|
|
20
20
|
import {
|
|
21
21
|
unknownSubcommand
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-6USV65XA.js";
|
|
23
23
|
import {
|
|
24
24
|
blank,
|
|
25
25
|
detail,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
warn
|
|
30
30
|
} from "./chunk-EZG76F7R.js";
|
|
31
31
|
import "./chunk-GNPVYOPB.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-DYCLVQXW.js";
|
|
33
33
|
|
|
34
34
|
// src/deploy/tests.ts
|
|
35
35
|
var TIMEOUT_MS = 12e4;
|
|
@@ -380,4 +380,4 @@ export {
|
|
|
380
380
|
runSuite,
|
|
381
381
|
runTestCommand
|
|
382
382
|
};
|
|
383
|
-
//# sourceMappingURL=test-command-
|
|
383
|
+
//# sourceMappingURL=test-command-72Y5S22H.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
assertBundleInput,
|
|
3
3
|
loadBundleText
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-W2G2WPTB.js";
|
|
5
|
+
import "./chunk-3NFUWXOC.js";
|
|
6
|
+
import "./chunk-6USV65XA.js";
|
|
7
7
|
import "./chunk-HJPTWBLH.js";
|
|
8
8
|
import {
|
|
9
9
|
blank,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-EZG76F7R.js";
|
|
16
16
|
import "./chunk-GNPVYOPB.js";
|
|
17
17
|
import "./chunk-55VHDNW5.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-DYCLVQXW.js";
|
|
19
19
|
import "./chunk-5L4X5LS6.js";
|
|
20
20
|
import "./chunk-WHOJWOSV.js";
|
|
21
21
|
import "./chunk-5XZ744TS.js";
|
|
@@ -119,4 +119,4 @@ function fmt(v) {
|
|
|
119
119
|
export {
|
|
120
120
|
runValidateCommand
|
|
121
121
|
};
|
|
122
|
-
//# sourceMappingURL=validate-command-
|
|
122
|
+
//# sourceMappingURL=validate-command-KDGH537H.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
fetchWorkspaceBundle,
|
|
3
3
|
runCodegenCommand
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-2V4YE6QC.js";
|
|
5
5
|
import "./chunk-P3TTMWUP.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveOutputTarget
|
|
@@ -17,9 +17,9 @@ import {
|
|
|
17
17
|
isMachineOutput,
|
|
18
18
|
writeJson
|
|
19
19
|
} from "./chunk-NUQCEOKA.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-HQ2CBRVI.js";
|
|
21
|
+
import "./chunk-CMZLPTGW.js";
|
|
22
|
+
import "./chunk-WUSKBXXD.js";
|
|
23
23
|
import {
|
|
24
24
|
fetchOrExplain,
|
|
25
25
|
httpFailure
|
|
@@ -36,11 +36,11 @@ import "./chunk-YZ4GU6F5.js";
|
|
|
36
36
|
import "./chunk-6DHJVLYP.js";
|
|
37
37
|
import "./chunk-4BXJGVZ3.js";
|
|
38
38
|
import "./chunk-U3G2UW65.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-3NFUWXOC.js";
|
|
40
40
|
import {
|
|
41
41
|
removedSubcommand,
|
|
42
42
|
unknownSubcommand
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-6USV65XA.js";
|
|
44
44
|
import "./chunk-HJPTWBLH.js";
|
|
45
45
|
import {
|
|
46
46
|
formatFields,
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
} from "./chunk-EZG76F7R.js";
|
|
51
51
|
import "./chunk-GNPVYOPB.js";
|
|
52
52
|
import "./chunk-55VHDNW5.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-DYCLVQXW.js";
|
|
54
54
|
import "./chunk-5L4X5LS6.js";
|
|
55
55
|
import "./chunk-WHOJWOSV.js";
|
|
56
56
|
import "./chunk-5XZ744TS.js";
|
|
@@ -155,4 +155,4 @@ async function runExport(args) {
|
|
|
155
155
|
export {
|
|
156
156
|
runWorkspaceCommand
|
|
157
157
|
};
|
|
158
|
-
//# sourceMappingURL=workspace-command-
|
|
158
|
+
//# sourceMappingURL=workspace-command-ICSI6PKO.js.map
|
package/llms/kinds-agent-mcp.md
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> Read when the workspace defines an `agent()` or an `mcpServer()`.
|
|
4
4
|
|
|
5
|
-
- `mcpServer({ name, guid?, description?, instructions?, docs?, enabled?, canonical?, spec?, tags?, history?, tools?, llm?, output? })` — an MCP toolset. `llm?`/`output?` are the same blocks `agent()` takes and are usually absent: an MCP server and an agent are ONE stored object distinguished by `type
|
|
5
|
+
- `mcpServer({ name, guid?, description?, instructions?, docs?, enabled?, canonical?, spec?, tags?, history?, tools?, llm?, output? })` — an MCP toolset. `llm?`/`output?` are the same blocks `agent()` takes and are usually absent: an MCP server and an agent are ONE stored object distinguished by `type`. Returns a handle with `getPath()`/`getUrl(baseUrl)` for the Streamable-HTTP endpoint — `getUrl` is NOT idempotent, a `baseUrl` already carrying an `/x2/mcp/<…>/stream` path THROWS, so resolve ONCE from the instance base URL. Fires on an ephemeral; not in sandbox.
|
|
6
6
|
- `tools?`: a `ToolsetToolEntry[]`. Pass the `tool()` HANDLES directly (`tools: [saveNote]`), like every other collection in the SDK; use the `{ tool, enabled?, auth? }` wrapper only when a tool needs `enabled: false` or per-tool `auth`. `auth` names an auth **table** (a `table({ auth: true })` handle or its name) — Xano's ONLY MCP auth surface (per-tool; there is no server-level gate). An entry that names no tool (no handle, no `id`) THROWS at export rather than emitting the `id: 0` null reference it used to; a deliberate raw `id: 0` warns and is carried through, so a pulled workspace still round-trips.
|
|
7
7
|
- `agent({ name, guid?, description?, docs?, enabled?, canonical?, tags?, history?, llm, tools?, output? })` — an LLM orchestrator. No top-level `instructions`/`prompt`/`spec` — the prompt lives under `llm`. Invoke from a stack with `s.ai.agent.run({ agent, args })`.
|
|
8
8
|
- `llm` (REQUIRED): typed provider settings, a discriminated union on `type` (`"xano-free" | "anthropic" | "openai" | "google-genai"`). Shared fields: `systemPrompt?`, `maxSteps?` (default `5`), and `prompt?` XOR `messages?` (genuinely exclusive: both is a type error and throws — the engine stores ONE `prompt_type`, so one would be dropped); plus provider fields (`apiKey?`, `model?`, `temperature?`, `reasoningEffort?`, …). String fields accept Twig placeholders — `{{ $args.x }}` for run inputs (the `args` of `s.ai.agent.run`), `{{ $env.NAME }}` for env vars.
|
|
9
9
|
- `tools?`: same `ToolsetToolEntry[]` as `mcpServer` — bare `tool()` handles, or a `{ tool, enabled?, auth? }` wrapper when one needs `enabled`/`auth`.
|
|
10
10
|
- `output?`: `{ schema: Record<string, input.*>, enabled? }` — structured-output schema. `schema` is a named-field record authored with the `input.*` catalog, exactly like a `defineFunction`/`query` `input:` map (the stored `structuredOutputsSchema` is the same wire shape as function inputs). e.g. `output: { schema: { priority: input.enum(["low","high"]), summary: input.text() } }`. When you pass the agent *handle* to `s.ai.agent.run({ agent })`, `.result` is typed straight from this schema — no `resultShape` witness needed (the shape is declared once). `resultShape` remains only to override that, or to type an agent referenced by bare name.
|
|
11
11
|
- **Run + read recipe (`s.ai.agent.run`):** bind the run to a var (`s.ai.agent.run({ agent, args, as: "run" })`) — it produces a rich envelope, and the completion is at **`.result`**. Read one structured field with a dotted ref (`response: ref("run.result.priority")`) or the whole completion (`ref("run.result")`, typed from `output.schema`); persist it in a later step the same way (`s.set_var({ name, value: ref("run.result.summary") })`). `args` is a plain object of run inputs (`{ topic: inp("topic") }` — raw literals are fine, e.g. `{ max_steps: 3 }`) surfaced to the agent as `{{ $args.topic }}`. Tool-call / per-step data (when tools ran) rides `.toolCalls` / `.steps` on the same envelope — both optional, absent or empty when no tools executed.
|
|
12
|
+
- **Marketplace:** for chat history, use `@xanots/chatbot`; for vector RAG, use `@xanots/vector` (`tools: [vector.searchTool]`). Find add-ons with `xanots marketplace search <q>`.
|
package/llms-full.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# xanots v0.0.3
|
|
1
|
+
# xanots v0.0.3
|
|
2
2
|
|
|
3
3
|
> TypeScript SDK that compiles a typed Xano workspace into the importable packageExport JSON bundle.
|
|
4
4
|
|
|
@@ -646,13 +646,14 @@ The run is isolated in ways that make a correct test fail for reasons the failur
|
|
|
646
646
|
|
|
647
647
|
> Read when the workspace defines an `agent()` or an `mcpServer()`.
|
|
648
648
|
|
|
649
|
-
- `mcpServer({ name, guid?, description?, instructions?, docs?, enabled?, canonical?, spec?, tags?, history?, tools?, llm?, output? })` — an MCP toolset. `llm?`/`output?` are the same blocks `agent()` takes and are usually absent: an MCP server and an agent are ONE stored object distinguished by `type
|
|
649
|
+
- `mcpServer({ name, guid?, description?, instructions?, docs?, enabled?, canonical?, spec?, tags?, history?, tools?, llm?, output? })` — an MCP toolset. `llm?`/`output?` are the same blocks `agent()` takes and are usually absent: an MCP server and an agent are ONE stored object distinguished by `type`. Returns a handle with `getPath()`/`getUrl(baseUrl)` for the Streamable-HTTP endpoint — `getUrl` is NOT idempotent, a `baseUrl` already carrying an `/x2/mcp/<…>/stream` path THROWS, so resolve ONCE from the instance base URL. Fires on an ephemeral; not in sandbox.
|
|
650
650
|
- `tools?`: a `ToolsetToolEntry[]`. Pass the `tool()` HANDLES directly (`tools: [saveNote]`), like every other collection in the SDK; use the `{ tool, enabled?, auth? }` wrapper only when a tool needs `enabled: false` or per-tool `auth`. `auth` names an auth **table** (a `table({ auth: true })` handle or its name) — Xano's ONLY MCP auth surface (per-tool; there is no server-level gate). An entry that names no tool (no handle, no `id`) THROWS at export rather than emitting the `id: 0` null reference it used to; a deliberate raw `id: 0` warns and is carried through, so a pulled workspace still round-trips.
|
|
651
651
|
- `agent({ name, guid?, description?, docs?, enabled?, canonical?, tags?, history?, llm, tools?, output? })` — an LLM orchestrator. No top-level `instructions`/`prompt`/`spec` — the prompt lives under `llm`. Invoke from a stack with `s.ai.agent.run({ agent, args })`.
|
|
652
652
|
- `llm` (REQUIRED): typed provider settings, a discriminated union on `type` (`"xano-free" | "anthropic" | "openai" | "google-genai"`). Shared fields: `systemPrompt?`, `maxSteps?` (default `5`), and `prompt?` XOR `messages?` (genuinely exclusive: both is a type error and throws — the engine stores ONE `prompt_type`, so one would be dropped); plus provider fields (`apiKey?`, `model?`, `temperature?`, `reasoningEffort?`, …). String fields accept Twig placeholders — `{{ $args.x }}` for run inputs (the `args` of `s.ai.agent.run`), `{{ $env.NAME }}` for env vars.
|
|
653
653
|
- `tools?`: same `ToolsetToolEntry[]` as `mcpServer` — bare `tool()` handles, or a `{ tool, enabled?, auth? }` wrapper when one needs `enabled`/`auth`.
|
|
654
654
|
- `output?`: `{ schema: Record<string, input.*>, enabled? }` — structured-output schema. `schema` is a named-field record authored with the `input.*` catalog, exactly like a `defineFunction`/`query` `input:` map (the stored `structuredOutputsSchema` is the same wire shape as function inputs). e.g. `output: { schema: { priority: input.enum(["low","high"]), summary: input.text() } }`. When you pass the agent *handle* to `s.ai.agent.run({ agent })`, `.result` is typed straight from this schema — no `resultShape` witness needed (the shape is declared once). `resultShape` remains only to override that, or to type an agent referenced by bare name.
|
|
655
655
|
- **Run + read recipe (`s.ai.agent.run`):** bind the run to a var (`s.ai.agent.run({ agent, args, as: "run" })`) — it produces a rich envelope, and the completion is at **`.result`**. Read one structured field with a dotted ref (`response: ref("run.result.priority")`) or the whole completion (`ref("run.result")`, typed from `output.schema`); persist it in a later step the same way (`s.set_var({ name, value: ref("run.result.summary") })`). `args` is a plain object of run inputs (`{ topic: inp("topic") }` — raw literals are fine, e.g. `{ max_steps: 3 }`) surfaced to the agent as `{{ $args.topic }}`. Tool-call / per-step data (when tools ran) rides `.toolCalls` / `.steps` on the same envelope — both optional, absent or empty when no tools executed.
|
|
656
|
+
- **Marketplace:** for chat history, use `@xanots/chatbot`; for vector RAG, use `@xanots/vector` (`tools: [vector.searchTool]`). Find add-ons with `xanots marketplace search <q>`.
|
|
656
657
|
|
|
657
658
|
# Realtime def shapes
|
|
658
659
|
|
package/llms.txt
CHANGED