arcie 0.1.3 → 0.1.5
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 +34 -6
- package/dist/agent/index.d.ts +6 -3
- package/dist/agent/index.js +6 -6
- package/dist/agent/index.js.map +1 -1
- package/dist/auth/index.d.ts +6 -5
- package/dist/auth/index.js +8 -17
- package/dist/auth/index.js.map +1 -1
- package/dist/build-TWNCPXBU.js +82 -0
- package/dist/build-TWNCPXBU.js.map +1 -0
- package/dist/channels/index.d.ts +8 -5
- package/dist/channels/index.js +10 -12
- package/dist/channels/index.js.map +1 -1
- package/dist/chunk-3CNQ6HQV.js +12 -0
- package/dist/chunk-3CNQ6HQV.js.map +1 -0
- package/dist/chunk-4L7WVCTU.js +12 -0
- package/dist/chunk-4L7WVCTU.js.map +1 -0
- package/dist/chunk-4WSILP75.js +1774 -0
- package/dist/chunk-4WSILP75.js.map +1 -0
- package/dist/chunk-6XETPLIF.js +176 -0
- package/dist/chunk-6XETPLIF.js.map +1 -0
- package/dist/chunk-CKHBEZCT.js +24 -0
- package/dist/chunk-CKHBEZCT.js.map +1 -0
- package/dist/chunk-FQ7KDNV5.js +12 -0
- package/dist/chunk-FQ7KDNV5.js.map +1 -0
- package/dist/chunk-HVBDOHTL.js +148 -0
- package/dist/chunk-HVBDOHTL.js.map +1 -0
- package/dist/chunk-HWD2Z2CH.js +742 -0
- package/dist/chunk-HWD2Z2CH.js.map +1 -0
- package/dist/chunk-KVSX4MLK.js +139 -0
- package/dist/chunk-KVSX4MLK.js.map +1 -0
- package/dist/chunk-L3BTL5FM.js +39 -0
- package/dist/chunk-L3BTL5FM.js.map +1 -0
- package/dist/chunk-LQC65UHE.js +34 -0
- package/dist/chunk-LQC65UHE.js.map +1 -0
- package/dist/chunk-N5R3TEEZ.js +15 -0
- package/dist/chunk-N5R3TEEZ.js.map +1 -0
- package/dist/chunk-PHTJLJOV.js +25 -0
- package/dist/chunk-PHTJLJOV.js.map +1 -0
- package/dist/chunk-QE46QFID.js +92 -0
- package/dist/chunk-QE46QFID.js.map +1 -0
- package/dist/chunk-SGWQZZ2A.js +54 -0
- package/dist/chunk-SGWQZZ2A.js.map +1 -0
- package/dist/chunk-WAD7VLNI.js +51 -0
- package/dist/chunk-WAD7VLNI.js.map +1 -0
- package/dist/chunk-XOFWQUOO.js +30 -0
- package/dist/chunk-XOFWQUOO.js.map +1 -0
- package/dist/chunk-ZJNHQXMO.js +20 -0
- package/dist/chunk-ZJNHQXMO.js.map +1 -0
- package/dist/cli/index.d.ts +7 -2
- package/dist/cli/index.js +171 -41
- package/dist/cli/index.js.map +1 -1
- package/dist/context/index.d.ts +14 -11
- package/dist/context/index.js +22 -37
- package/dist/context/index.js.map +1 -1
- package/dist/dev-ZZDVOWUZ.js +1967 -0
- package/dist/dev-ZZDVOWUZ.js.map +1 -0
- package/dist/discover/index.d.ts +17 -7
- package/dist/discover/index.js +6 -132
- package/dist/discover/index.js.map +1 -1
- package/dist/hooks/index.d.ts +6 -3
- package/dist/hooks/index.js +6 -6
- package/dist/hooks/index.js.map +1 -1
- package/dist/index-CElLRVTP.d.ts +136 -0
- package/dist/index.d.ts +297 -18
- package/dist/index.js +160 -13
- package/dist/index.js.map +1 -1
- package/dist/init-5F7CIVLN.js +822 -0
- package/dist/init-5F7CIVLN.js.map +1 -0
- package/dist/instructions/index.d.ts +7 -4
- package/dist/instructions/index.js +8 -32
- package/dist/instructions/index.js.map +1 -1
- package/dist/protocol/events.d.ts +47 -39
- package/dist/protocol/events.js +46 -45
- package/dist/protocol/events.js.map +1 -1
- package/dist/runner/index.d.ts +4 -18
- package/dist/runner/index.js +11 -277
- package/dist/runner/index.js.map +1 -1
- package/dist/scaffold-web-chat-OQL5C2GK.js +7 -0
- package/dist/scaffold-web-chat-OQL5C2GK.js.map +1 -0
- package/dist/schedules/index.d.ts +6 -3
- package/dist/schedules/index.js +6 -6
- package/dist/schedules/index.js.map +1 -1
- package/dist/skills/index.d.ts +7 -4
- package/dist/skills/index.js +8 -27
- package/dist/skills/index.js.map +1 -1
- package/dist/tools/index.d.ts +13 -3
- package/dist/tools/index.js +8 -9
- package/dist/tools/index.js.map +1 -1
- package/dist/types-DwxwdSa2.d.ts +151 -0
- package/docs/getting-started.md +2 -2
- package/docs/index.md +3 -2
- package/docs/project-layout.md +2 -2
- package/docs/subagents.md +95 -0
- package/package.json +15 -10
- package/templates/default/.env.local +12 -0
- package/templates/default/agent/agent.ts +2 -2
- package/templates/default/package.json +3 -3
- package/templates/web-chat/.env.local.example +4 -0
- package/templates/web-chat/README.md +51 -0
- package/templates/web-chat/app/api/chat/route.ts +43 -0
- package/templates/web-chat/app/globals.css +55 -0
- package/templates/web-chat/app/layout.tsx +15 -0
- package/templates/web-chat/app/page.tsx +9 -0
- package/templates/web-chat/components/chat.tsx +196 -0
- package/templates/web-chat/components/input-bar.tsx +74 -0
- package/templates/web-chat/components/message.tsx +63 -0
- package/templates/web-chat/components/tool-call.tsx +79 -0
- package/templates/web-chat/components/ui/button.tsx +46 -0
- package/templates/web-chat/components/ui/input.tsx +19 -0
- package/templates/web-chat/components.json +20 -0
- package/templates/web-chat/lib/stream.ts +41 -0
- package/templates/web-chat/lib/types.ts +61 -0
- package/templates/web-chat/lib/utils.ts +6 -0
- package/templates/web-chat/next.config.mjs +4 -0
- package/templates/web-chat/package.json +32 -0
- package/templates/web-chat/postcss.config.mjs +6 -0
- package/templates/web-chat/tailwind.config.ts +59 -0
- package/templates/web-chat/tsconfig.json +23 -0
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/channels/index.d.ts.map +0 -1
- package/dist/cli/banner.d.ts +0 -2
- package/dist/cli/banner.d.ts.map +0 -1
- package/dist/cli/banner.js +0 -10
- package/dist/cli/banner.js.map +0 -1
- package/dist/cli/build.d.ts +0 -5
- package/dist/cli/build.d.ts.map +0 -1
- package/dist/cli/build.js +0 -54
- package/dist/cli/build.js.map +0 -1
- package/dist/cli/dev.d.ts +0 -5
- package/dist/cli/dev.d.ts.map +0 -1
- package/dist/cli/dev.js +0 -74
- package/dist/cli/dev.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/init.d.ts +0 -4
- package/dist/cli/init.d.ts.map +0 -1
- package/dist/cli/init.js +0 -75
- package/dist/cli/init.js.map +0 -1
- package/dist/context/index.d.ts.map +0 -1
- package/dist/discover/index.d.ts.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/instructions/index.d.ts.map +0 -1
- package/dist/loader.d.ts +0 -7
- package/dist/loader.d.ts.map +0 -1
- package/dist/loader.js +0 -102
- package/dist/loader.js.map +0 -1
- package/dist/protocol/events.d.ts.map +0 -1
- package/dist/runner/index.d.ts.map +0 -1
- package/dist/schedules/index.d.ts.map +0 -1
- package/dist/skills/index.d.ts.map +0 -1
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/types.d.ts +0 -118
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// src/context/index.ts
|
|
2
|
+
var currentSession = null;
|
|
3
|
+
var currentTurn = null;
|
|
4
|
+
var sharedContext = /* @__PURE__ */ new Map();
|
|
5
|
+
function getSession() {
|
|
6
|
+
return currentSession;
|
|
7
|
+
}
|
|
8
|
+
function getTurn() {
|
|
9
|
+
return currentTurn;
|
|
10
|
+
}
|
|
11
|
+
function setSession(session) {
|
|
12
|
+
currentSession = session;
|
|
13
|
+
}
|
|
14
|
+
function setTurn(turn) {
|
|
15
|
+
currentTurn = turn;
|
|
16
|
+
}
|
|
17
|
+
function getContext(key) {
|
|
18
|
+
return sharedContext.get(key);
|
|
19
|
+
}
|
|
20
|
+
function requireContext(key) {
|
|
21
|
+
const value = sharedContext.get(key);
|
|
22
|
+
if (value === void 0) {
|
|
23
|
+
throw new Error(`Required context key not found: ${key}`);
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
function hasContext(key) {
|
|
28
|
+
return sharedContext.has(key);
|
|
29
|
+
}
|
|
30
|
+
function setContext(key, value) {
|
|
31
|
+
sharedContext.set(key, value);
|
|
32
|
+
}
|
|
33
|
+
function ensureContext(key, factory) {
|
|
34
|
+
if (!sharedContext.has(key)) {
|
|
35
|
+
sharedContext.set(key, factory());
|
|
36
|
+
}
|
|
37
|
+
return sharedContext.get(key);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export {
|
|
41
|
+
getSession,
|
|
42
|
+
getTurn,
|
|
43
|
+
setSession,
|
|
44
|
+
setTurn,
|
|
45
|
+
getContext,
|
|
46
|
+
requireContext,
|
|
47
|
+
hasContext,
|
|
48
|
+
setContext,
|
|
49
|
+
ensureContext
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=chunk-WAD7VLNI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/context/index.ts"],"sourcesContent":["import type { Session, TurnContext } from \"../types\";\n\nlet currentSession: Session | null = null;\nlet currentTurn: TurnContext | null = null;\nconst sharedContext = new Map<string, unknown>();\n\nexport function getSession(): Session | null {\n return currentSession;\n}\n\nexport function getTurn(): TurnContext | null {\n return currentTurn;\n}\n\nexport function setSession(session: Session): void {\n currentSession = session;\n}\n\nexport function setTurn(turn: TurnContext): void {\n currentTurn = turn;\n}\n\nexport function getContext<T = unknown>(key: string): T | undefined {\n return sharedContext.get(key) as T | undefined;\n}\n\nexport function requireContext<T = unknown>(key: string): T {\n const value = sharedContext.get(key);\n if (value === undefined) {\n throw new Error(`Required context key not found: ${key}`);\n }\n return value as T;\n}\n\nexport function hasContext(key: string): boolean {\n return sharedContext.has(key);\n}\n\nexport function setContext(key: string, value: unknown): void {\n sharedContext.set(key, value);\n}\n\nexport function ensureContext<T>(\n key: string,\n factory: () => T\n): T {\n if (!sharedContext.has(key)) {\n sharedContext.set(key, factory());\n }\n return sharedContext.get(key) as T;\n}\n"],"mappings":";AAEA,IAAI,iBAAiC;AACrC,IAAI,cAAkC;AACtC,IAAM,gBAAgB,oBAAI,IAAqB;AAExC,SAAS,aAA6B;AAC3C,SAAO;AACT;AAEO,SAAS,UAA8B;AAC5C,SAAO;AACT;AAEO,SAAS,WAAW,SAAwB;AACjD,mBAAiB;AACnB;AAEO,SAAS,QAAQ,MAAyB;AAC/C,gBAAc;AAChB;AAEO,SAAS,WAAwB,KAA4B;AAClE,SAAO,cAAc,IAAI,GAAG;AAC9B;AAEO,SAAS,eAA4B,KAAgB;AAC1D,QAAM,QAAQ,cAAc,IAAI,GAAG;AACnC,MAAI,UAAU,QAAW;AACvB,UAAM,IAAI,MAAM,mCAAmC,GAAG,EAAE;AAAA,EAC1D;AACA,SAAO;AACT;AAEO,SAAS,WAAW,KAAsB;AAC/C,SAAO,cAAc,IAAI,GAAG;AAC9B;AAEO,SAAS,WAAW,KAAa,OAAsB;AAC5D,gBAAc,IAAI,KAAK,KAAK;AAC9B;AAEO,SAAS,cACd,KACA,SACG;AACH,MAAI,CAAC,cAAc,IAAI,GAAG,GAAG;AAC3B,kBAAc,IAAI,KAAK,QAAQ,CAAC;AAAA,EAClC;AACA,SAAO,cAAc,IAAI,GAAG;AAC9B;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// src/cli/banner.ts
|
|
2
|
+
import { readFileSync } from "fs";
|
|
3
|
+
import { resolve, dirname } from "path";
|
|
4
|
+
import { fileURLToPath } from "url";
|
|
5
|
+
import chalk from "chalk";
|
|
6
|
+
var __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
|
+
var _version = "0.0.0";
|
|
8
|
+
try {
|
|
9
|
+
const pkg = JSON.parse(readFileSync(resolve(__dirname, "../package.json"), "utf-8"));
|
|
10
|
+
_version = pkg.version;
|
|
11
|
+
} catch {
|
|
12
|
+
}
|
|
13
|
+
var ARCIE_WORDMARK = "arcie";
|
|
14
|
+
function version() {
|
|
15
|
+
return _version;
|
|
16
|
+
}
|
|
17
|
+
function arcieCliBanner() {
|
|
18
|
+
return `${chalk.bgBlack.white(` ${ARCIE_WORDMARK} `)} ${chalk.dim(`v${_version}`)}`;
|
|
19
|
+
}
|
|
20
|
+
function showHeader() {
|
|
21
|
+
console.log(` ${chalk.bold("arcie")} ${chalk.dim(`v${_version}`)}`);
|
|
22
|
+
console.log();
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
version,
|
|
27
|
+
arcieCliBanner,
|
|
28
|
+
showHeader
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-XOFWQUOO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/banner.ts"],"sourcesContent":["import { readFileSync } from \"node:fs\";\nimport { resolve, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport chalk from \"chalk\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nlet _version = \"0.0.0\";\ntry {\n const pkg = JSON.parse(readFileSync(resolve(__dirname, \"../package.json\"), \"utf-8\"));\n _version = pkg.version;\n} catch {}\n\nexport const ARCIE_WORDMARK = \"arcie\";\n\nexport function version(): string {\n return _version;\n}\n\nexport function arcieCliBanner(): string {\n return `${chalk.bgBlack.white(` ${ARCIE_WORDMARK} `)} ${chalk.dim(`v${_version}`)}`;\n}\n\nexport function showHeader(): void {\n console.log(` ${chalk.bold(\"arcie\")} ${chalk.dim(`v${_version}`)}`);\n console.log();\n}\n\nexport function divider(): void {\n console.log();\n console.log(` ${chalk.dim(\"─\".repeat(50))}`);\n console.log();\n}\n"],"mappings":";AAAA,SAAS,oBAAoB;AAC7B,SAAS,SAAS,eAAe;AACjC,SAAS,qBAAqB;AAC9B,OAAO,WAAW;AAElB,IAAM,YAAY,QAAQ,cAAc,YAAY,GAAG,CAAC;AACxD,IAAI,WAAW;AACf,IAAI;AACF,QAAM,MAAM,KAAK,MAAM,aAAa,QAAQ,WAAW,iBAAiB,GAAG,OAAO,CAAC;AACnF,aAAW,IAAI;AACjB,QAAQ;AAAC;AAEF,IAAM,iBAAiB;AAEvB,SAAS,UAAkB;AAChC,SAAO;AACT;AAEO,SAAS,iBAAyB;AACvC,SAAO,GAAG,MAAM,QAAQ,MAAM,IAAI,cAAc,GAAG,CAAC,IAAI,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;AACnF;AAEO,SAAS,aAAmB;AACjC,UAAQ,IAAI,KAAK,MAAM,KAAK,OAAO,CAAC,IAAI,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC,EAAE;AACnE,UAAQ,IAAI;AACd;","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/channels/index.ts
|
|
2
|
+
function defineChannel(config) {
|
|
3
|
+
if (!config.name || !config.handler) {
|
|
4
|
+
throw new Error("Channel must have name and handler");
|
|
5
|
+
}
|
|
6
|
+
return config;
|
|
7
|
+
}
|
|
8
|
+
function POST(handler) {
|
|
9
|
+
return handler;
|
|
10
|
+
}
|
|
11
|
+
function GET(handler) {
|
|
12
|
+
return handler;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
defineChannel,
|
|
17
|
+
POST,
|
|
18
|
+
GET
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=chunk-ZJNHQXMO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/channels/index.ts"],"sourcesContent":["import type { ChannelConfig } from \"../types\";\n\nexport function defineChannel(config: ChannelConfig): ChannelConfig {\n if (!config.name || !config.handler) {\n throw new Error(\"Channel must have name and handler\");\n }\n return config;\n}\n\nexport function POST(handler: ChannelConfig[\"handler\"]): ChannelConfig[\"handler\"] {\n return handler;\n}\n\nexport function GET(handler: ChannelConfig[\"handler\"]): ChannelConfig[\"handler\"] {\n return handler;\n}\n"],"mappings":";AAEO,SAAS,cAAc,QAAsC;AAClE,MAAI,CAAC,OAAO,QAAQ,CAAC,OAAO,SAAS;AACnC,UAAM,IAAI,MAAM,oCAAoC;AAAA,EACtD;AACA,SAAO;AACT;AAEO,SAAS,KAAK,SAA6D;AAChF,SAAO;AACT;AAEO,SAAS,IAAI,SAA6D;AAC/E,SAAO;AACT;","names":[]}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
interface CliLogger {
|
|
3
|
+
error(message: string): void;
|
|
4
|
+
log(message: string): void;
|
|
5
|
+
}
|
|
6
|
+
declare function runCli(argv?: string[], logger?: CliLogger): Promise<void>;
|
|
7
|
+
|
|
8
|
+
export { runCli };
|
package/dist/cli/index.js
CHANGED
|
@@ -1,43 +1,173 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
2
|
+
import {
|
|
3
|
+
createCliTheme,
|
|
4
|
+
renderCliTaggedLine
|
|
5
|
+
} from "../chunk-HVBDOHTL.js";
|
|
6
|
+
import {
|
|
7
|
+
arcieCliBanner,
|
|
8
|
+
version
|
|
9
|
+
} from "../chunk-XOFWQUOO.js";
|
|
10
|
+
|
|
11
|
+
// src/cli/index.ts
|
|
12
|
+
import { resolve as resolvePath } from "path";
|
|
13
|
+
import { Command, CommanderError, InvalidArgumentError } from "commander";
|
|
14
|
+
var DISPLAY_MODES = /* @__PURE__ */ new Set(["full", "collapsed", "auto-collapsed", "hidden"]);
|
|
15
|
+
var STATS_MODES = /* @__PURE__ */ new Set(["tokens", "tokensPerSecond"]);
|
|
16
|
+
var LOG_MODES = /* @__PURE__ */ new Set(["all", "stderr", "none"]);
|
|
17
|
+
function parsePortOption(value) {
|
|
18
|
+
if (!/^-?\d+$/.test(value)) {
|
|
19
|
+
throw new InvalidArgumentError(`Expected a numeric port, received "${value}".`);
|
|
20
|
+
}
|
|
21
|
+
const port = Number(value);
|
|
22
|
+
if (port < 0 || port > 65535) {
|
|
23
|
+
throw new InvalidArgumentError(`Expected a port between 0 and 65535, received "${value}".`);
|
|
24
|
+
}
|
|
25
|
+
return port;
|
|
26
|
+
}
|
|
27
|
+
function parseDisplayMode(value) {
|
|
28
|
+
if (!DISPLAY_MODES.has(value)) {
|
|
29
|
+
throw new InvalidArgumentError(
|
|
30
|
+
`Expected one of ${[...DISPLAY_MODES].join(", ")}, received "${value}".`
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
}
|
|
35
|
+
function parseStatsMode(value) {
|
|
36
|
+
if (!STATS_MODES.has(value)) {
|
|
37
|
+
throw new InvalidArgumentError(
|
|
38
|
+
`Expected one of ${[...STATS_MODES].join(", ")}, received "${value}".`
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
return value;
|
|
42
|
+
}
|
|
43
|
+
function parseLogsMode(value) {
|
|
44
|
+
if (!LOG_MODES.has(value)) {
|
|
45
|
+
throw new InvalidArgumentError(
|
|
46
|
+
`Expected one of ${[...LOG_MODES].join(", ")}, received "${value}".`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
function parseContextSizeOption(value) {
|
|
52
|
+
const size = Number(value);
|
|
53
|
+
if (!Number.isFinite(size) || size <= 0) {
|
|
54
|
+
throw new InvalidArgumentError(`Expected a positive number, received "${value}".`);
|
|
55
|
+
}
|
|
56
|
+
return size;
|
|
57
|
+
}
|
|
58
|
+
function shouldPrintCliBootBanner(actionCommand) {
|
|
59
|
+
const name = actionCommand.name();
|
|
60
|
+
return name === "info" || name === "dev" || name === "init";
|
|
61
|
+
}
|
|
62
|
+
function createCliProgram(logger) {
|
|
63
|
+
const program = new Command();
|
|
64
|
+
const theme = createCliTheme();
|
|
65
|
+
program.name("arcie").description("arcie \u2014 the electronic line, build agents at the speed of light").version(version()).showHelpAfterError().exitOverride().hook("preAction", (_program, actionCommand) => {
|
|
66
|
+
if (shouldPrintCliBootBanner(actionCommand)) {
|
|
67
|
+
logger.log(arcieCliBanner());
|
|
68
|
+
}
|
|
69
|
+
}).configureOutput({
|
|
70
|
+
writeErr: (message) => logger.error(message.trimEnd()),
|
|
71
|
+
writeOut: (message) => logger.log(message.trimEnd())
|
|
72
|
+
});
|
|
73
|
+
const channels = program.command("channels").description("Manage channels for the current agent (web UI, HTTP, etc.).");
|
|
74
|
+
channels.command("add <kind>").description("Scaffold a channel (currently supports: web).").option("--agent-dir <path>", "Path to agent directory", ".").action(async (kind, options) => {
|
|
75
|
+
if (kind !== "web") {
|
|
76
|
+
logger.error(`unknown channel kind: ${kind}. supported: web`);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
const agentDir = resolvePath(process.cwd(), options.agentDir);
|
|
80
|
+
const { scaffoldWebChat } = await import("../scaffold-web-chat-OQL5C2GK.js");
|
|
81
|
+
try {
|
|
82
|
+
const result = scaffoldWebChat(agentDir);
|
|
83
|
+
if (result.alreadyExisted) {
|
|
84
|
+
logger.error(`channels/web already exists at ${result.targetPath}`);
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
logger.log(
|
|
88
|
+
renderCliTaggedLine(theme, {
|
|
89
|
+
message: `scaffolded ${result.targetPath}`,
|
|
90
|
+
tag: "channels",
|
|
91
|
+
tone: "success"
|
|
92
|
+
})
|
|
93
|
+
);
|
|
94
|
+
logger.log(
|
|
95
|
+
renderCliTaggedLine(theme, {
|
|
96
|
+
message: "cd into it, then: npm install && cp .env.local.example .env.local && npm run dev",
|
|
97
|
+
tag: "next",
|
|
98
|
+
tone: "info"
|
|
99
|
+
})
|
|
100
|
+
);
|
|
101
|
+
} catch (err) {
|
|
102
|
+
logger.error(err instanceof Error ? err.message : String(err));
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
program.command("init [target]").description("Create a new arcie agent, or add one to an existing project directory.").option("--template <name>", "Template to use (default, agent-only)", "default").option("-y, --yes", "Accepted for compatibility; has no effect").action(async (target, options) => {
|
|
107
|
+
if (options.yes) logger.error("warning: --yes has no effect for arcie init.");
|
|
108
|
+
const { initCommand } = await import("../init-5F7CIVLN.js");
|
|
109
|
+
await initCommand(target, { template: options.template });
|
|
110
|
+
});
|
|
111
|
+
program.command("build").description("Compile the agent for production.").option("--agent-dir <path>", "Path to agent directory", "agent").option("--out-dir <path>", "Output directory", ".arcie").action(async (options) => {
|
|
112
|
+
const { buildCommand } = await import("../build-TWNCPXBU.js");
|
|
113
|
+
await buildCommand(options);
|
|
114
|
+
logger.log(
|
|
115
|
+
renderCliTaggedLine(theme, {
|
|
116
|
+
message: `output at ${options.outDir}`,
|
|
117
|
+
tag: "build",
|
|
118
|
+
tone: "success"
|
|
119
|
+
})
|
|
120
|
+
);
|
|
121
|
+
});
|
|
122
|
+
program.command("dev").description("Start the arcie development server or attach an interactive UI.").option("-p, --port <port>", "Port to listen on", parsePortOption, 3e3).option("--host <host>", "Host interface to bind").option("--agent-dir <path>", "Path to agent directory", "agent").option("--input <text>", "Pre-fill the prompt input, or start onboarding with /model").option("--no-ui", "Start the server without an interactive UI").option("--name <name>", "Title shown in the terminal UI (defaults to the app folder name)").option(
|
|
123
|
+
"--tools <mode>",
|
|
124
|
+
"How tool calls render: full | collapsed | auto-collapsed | hidden",
|
|
125
|
+
parseDisplayMode
|
|
126
|
+
).option(
|
|
127
|
+
"--reasoning <mode>",
|
|
128
|
+
"How reasoning renders: full | collapsed | auto-collapsed | hidden",
|
|
129
|
+
parseDisplayMode
|
|
130
|
+
).option(
|
|
131
|
+
"--subagents <mode>",
|
|
132
|
+
"How subagent sections render: full | collapsed | auto-collapsed | hidden",
|
|
133
|
+
parseDisplayMode
|
|
134
|
+
).option(
|
|
135
|
+
"--assistant-response-stats <mode>",
|
|
136
|
+
"Assistant header statistic: tokens | tokensPerSecond",
|
|
137
|
+
parseStatsMode
|
|
138
|
+
).option(
|
|
139
|
+
"--context-size <tokens>",
|
|
140
|
+
"Model context window size, shown as a usage percentage",
|
|
141
|
+
parseContextSizeOption
|
|
142
|
+
).option("--logs <mode>", "Which logs to show: all | stderr | none", parseLogsMode).action(async (options) => {
|
|
143
|
+
const { devCommand } = await import("../dev-ZZDVOWUZ.js");
|
|
144
|
+
await devCommand({
|
|
145
|
+
port: String(options.port ?? 3e3),
|
|
146
|
+
agentDir: options.agentDir,
|
|
147
|
+
input: options.ui === false ? false : Boolean(options.input) || options.ui !== false
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
return program;
|
|
151
|
+
}
|
|
152
|
+
async function runCli(argv = process.argv.slice(2), logger = console) {
|
|
153
|
+
const program = createCliProgram(logger);
|
|
154
|
+
const input = argv.length === 0 ? ["dev"] : argv;
|
|
155
|
+
try {
|
|
156
|
+
await program.parseAsync(input, { from: "user" });
|
|
157
|
+
} catch (error) {
|
|
158
|
+
if (error instanceof CommanderError) {
|
|
159
|
+
if (error.exitCode === 0) return;
|
|
160
|
+
throw new Error(error.message);
|
|
161
|
+
}
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
runCli().catch((error) => {
|
|
166
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
167
|
+
console.error(message);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
});
|
|
170
|
+
export {
|
|
171
|
+
runCli
|
|
172
|
+
};
|
|
43
173
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACzD,IAAI,OAAO,GAAG,OAAO,CAAC;AACtB,IAAI,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;AACxB,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AAEV,UAAU,EAAE,CAAC;AAEb,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,iEAAiE,CAAC;KAC9E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,8BAA8B,CAAC;KAC3C,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC5C,MAAM,CAAC,mBAAmB,EAAE,uCAAuC,EAAE,SAAS,CAAC;KAC/E,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,CAAC;KACxD,MAAM,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,OAAO,CAAC;KAChE,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,OAAO,CAAC;KAChE,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,CAAC;KACxD,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { resolve as resolvePath } from \"node:path\";\nimport { Command, CommanderError, InvalidArgumentError } from \"commander\";\nimport { arcieCliBanner, version } from \"./banner\";\nimport { createCliTheme, renderCliTaggedLine } from \"./ui/output\";\n\ninterface CliLogger {\n error(message: string): void;\n log(message: string): void;\n}\n\nconst DISPLAY_MODES = new Set([\"full\", \"collapsed\", \"auto-collapsed\", \"hidden\"]);\nconst STATS_MODES = new Set([\"tokens\", \"tokensPerSecond\"]);\nconst LOG_MODES = new Set([\"all\", \"stderr\", \"none\"]);\n\ntype TerminalPartDisplayMode = \"full\" | \"collapsed\" | \"auto-collapsed\" | \"hidden\";\ntype AssistantResponseStatsMode = \"tokens\" | \"tokensPerSecond\";\ntype LogDisplayMode = \"all\" | \"stderr\" | \"none\";\n\nfunction parsePortOption(value: string): number {\n if (!/^-?\\d+$/.test(value)) {\n throw new InvalidArgumentError(`Expected a numeric port, received \"${value}\".`);\n }\n const port = Number(value);\n if (port < 0 || port > 65_535) {\n throw new InvalidArgumentError(`Expected a port between 0 and 65535, received \"${value}\".`);\n }\n return port;\n}\n\nfunction parseDisplayMode(value: string): TerminalPartDisplayMode {\n if (!DISPLAY_MODES.has(value)) {\n throw new InvalidArgumentError(\n `Expected one of ${[...DISPLAY_MODES].join(\", \")}, received \"${value}\".`,\n );\n }\n return value as TerminalPartDisplayMode;\n}\n\nfunction parseStatsMode(value: string): AssistantResponseStatsMode {\n if (!STATS_MODES.has(value)) {\n throw new InvalidArgumentError(\n `Expected one of ${[...STATS_MODES].join(\", \")}, received \"${value}\".`,\n );\n }\n return value as AssistantResponseStatsMode;\n}\n\nfunction parseLogsMode(value: string): LogDisplayMode {\n if (!LOG_MODES.has(value)) {\n throw new InvalidArgumentError(\n `Expected one of ${[...LOG_MODES].join(\", \")}, received \"${value}\".`,\n );\n }\n return value as LogDisplayMode;\n}\n\nfunction parseContextSizeOption(value: string): number {\n const size = Number(value);\n if (!Number.isFinite(size) || size <= 0) {\n throw new InvalidArgumentError(`Expected a positive number, received \"${value}\".`);\n }\n return size;\n}\n\nfunction shouldPrintCliBootBanner(actionCommand: Command): boolean {\n const name = actionCommand.name();\n return name === \"info\" || name === \"dev\" || name === \"init\";\n}\n\nfunction createCliProgram(logger: CliLogger): Command {\n const program = new Command();\n const theme = createCliTheme();\n\n program\n .name(\"arcie\")\n .description(\"arcie — the electronic line, build agents at the speed of light\")\n .version(version())\n .showHelpAfterError()\n .exitOverride()\n .hook(\"preAction\", (_program, actionCommand) => {\n if (shouldPrintCliBootBanner(actionCommand)) {\n logger.log(arcieCliBanner());\n }\n })\n .configureOutput({\n writeErr: (message) => logger.error(message.trimEnd()),\n writeOut: (message) => logger.log(message.trimEnd()),\n });\n\n const channels = program\n .command(\"channels\")\n .description(\"Manage channels for the current agent (web UI, HTTP, etc.).\");\n\n channels\n .command(\"add <kind>\")\n .description(\"Scaffold a channel (currently supports: web).\")\n .option(\"--agent-dir <path>\", \"Path to agent directory\", \".\")\n .action(async (kind: string, options: { agentDir: string }) => {\n if (kind !== \"web\") {\n logger.error(`unknown channel kind: ${kind}. supported: web`);\n process.exit(1);\n }\n const agentDir = resolvePath(process.cwd(), options.agentDir);\n const { scaffoldWebChat } = await import(\"./scaffold-web-chat\");\n try {\n const result = scaffoldWebChat(agentDir);\n if (result.alreadyExisted) {\n logger.error(`channels/web already exists at ${result.targetPath}`);\n process.exit(1);\n }\n logger.log(\n renderCliTaggedLine(theme, {\n message: `scaffolded ${result.targetPath}`,\n tag: \"channels\",\n tone: \"success\",\n }),\n );\n logger.log(\n renderCliTaggedLine(theme, {\n message: \"cd into it, then: npm install && cp .env.local.example .env.local && npm run dev\",\n tag: \"next\",\n tone: \"info\",\n }),\n );\n } catch (err) {\n logger.error(err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n });\n\n program\n .command(\"init [target]\")\n .description(\"Create a new arcie agent, or add one to an existing project directory.\")\n .option(\"--template <name>\", \"Template to use (default, agent-only)\", \"default\")\n .option(\"-y, --yes\", \"Accepted for compatibility; has no effect\")\n .action(async (target: string | undefined, options: { template: string; yes?: boolean }) => {\n if (options.yes) logger.error(\"warning: --yes has no effect for arcie init.\");\n const { initCommand } = await import(\"./init\");\n await initCommand(target, { template: options.template });\n });\n\n program\n .command(\"build\")\n .description(\"Compile the agent for production.\")\n .option(\"--agent-dir <path>\", \"Path to agent directory\", \"agent\")\n .option(\"--out-dir <path>\", \"Output directory\", \".arcie\")\n .action(async (options: { agentDir: string; outDir: string }) => {\n const { buildCommand } = await import(\"./build\");\n await buildCommand(options);\n logger.log(\n renderCliTaggedLine(theme, {\n message: `output at ${options.outDir}`,\n tag: \"build\",\n tone: \"success\",\n }),\n );\n });\n\n program\n .command(\"dev\")\n .description(\"Start the arcie development server or attach an interactive UI.\")\n .option(\"-p, --port <port>\", \"Port to listen on\", parsePortOption, 3000)\n .option(\"--host <host>\", \"Host interface to bind\")\n .option(\"--agent-dir <path>\", \"Path to agent directory\", \"agent\")\n .option(\"--input <text>\", \"Pre-fill the prompt input, or start onboarding with /model\")\n .option(\"--no-ui\", \"Start the server without an interactive UI\")\n .option(\"--name <name>\", \"Title shown in the terminal UI (defaults to the app folder name)\")\n .option(\n \"--tools <mode>\",\n \"How tool calls render: full | collapsed | auto-collapsed | hidden\",\n parseDisplayMode,\n )\n .option(\n \"--reasoning <mode>\",\n \"How reasoning renders: full | collapsed | auto-collapsed | hidden\",\n parseDisplayMode,\n )\n .option(\n \"--subagents <mode>\",\n \"How subagent sections render: full | collapsed | auto-collapsed | hidden\",\n parseDisplayMode,\n )\n .option(\n \"--assistant-response-stats <mode>\",\n \"Assistant header statistic: tokens | tokensPerSecond\",\n parseStatsMode,\n )\n .option(\n \"--context-size <tokens>\",\n \"Model context window size, shown as a usage percentage\",\n parseContextSizeOption,\n )\n .option(\"--logs <mode>\", \"Which logs to show: all | stderr | none\", parseLogsMode)\n .action(async (options) => {\n const { devCommand } = await import(\"./dev\");\n await devCommand({\n port: String(options.port ?? 3000),\n agentDir: options.agentDir,\n input: options.ui === false ? false : Boolean(options.input) || options.ui !== false,\n });\n });\n\n return program;\n}\n\nexport async function runCli(\n argv: string[] = process.argv.slice(2),\n logger: CliLogger = console,\n): Promise<void> {\n const program = createCliProgram(logger);\n const input = argv.length === 0 ? [\"dev\"] : argv;\n\n try {\n await program.parseAsync(input, { from: \"user\" });\n } catch (error) {\n if (error instanceof CommanderError) {\n if (error.exitCode === 0) return;\n throw new Error(error.message);\n }\n throw error;\n }\n}\n\nrunCli().catch((error) => {\n const message = error instanceof Error ? error.message : String(error);\n console.error(message);\n process.exit(1);\n});\n"],"mappings":"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","names":[]}
|
package/dist/context/index.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { j as Session, n as TurnContext } from '../types-DwxwdSa2.js';
|
|
2
|
+
import 'zod';
|
|
3
|
+
|
|
4
|
+
declare function getSession(): Session | null;
|
|
5
|
+
declare function getTurn(): TurnContext | null;
|
|
6
|
+
declare function setSession(session: Session): void;
|
|
7
|
+
declare function setTurn(turn: TurnContext): void;
|
|
8
|
+
declare function getContext<T = unknown>(key: string): T | undefined;
|
|
9
|
+
declare function requireContext<T = unknown>(key: string): T;
|
|
10
|
+
declare function hasContext(key: string): boolean;
|
|
11
|
+
declare function setContext(key: string, value: unknown): void;
|
|
12
|
+
declare function ensureContext<T>(key: string, factory: () => T): T;
|
|
13
|
+
|
|
14
|
+
export { ensureContext, getContext, getSession, getTurn, hasContext, requireContext, setContext, setSession, setTurn };
|
package/dist/context/index.js
CHANGED
|
@@ -1,38 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
return value;
|
|
25
|
-
}
|
|
26
|
-
export function hasContext(key) {
|
|
27
|
-
return sharedContext.has(key);
|
|
28
|
-
}
|
|
29
|
-
export function setContext(key, value) {
|
|
30
|
-
sharedContext.set(key, value);
|
|
31
|
-
}
|
|
32
|
-
export function ensureContext(key, factory) {
|
|
33
|
-
if (!sharedContext.has(key)) {
|
|
34
|
-
sharedContext.set(key, factory());
|
|
35
|
-
}
|
|
36
|
-
return sharedContext.get(key);
|
|
37
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
ensureContext,
|
|
3
|
+
getContext,
|
|
4
|
+
getSession,
|
|
5
|
+
getTurn,
|
|
6
|
+
hasContext,
|
|
7
|
+
requireContext,
|
|
8
|
+
setContext,
|
|
9
|
+
setSession,
|
|
10
|
+
setTurn
|
|
11
|
+
} from "../chunk-WAD7VLNI.js";
|
|
12
|
+
export {
|
|
13
|
+
ensureContext,
|
|
14
|
+
getContext,
|
|
15
|
+
getSession,
|
|
16
|
+
getTurn,
|
|
17
|
+
hasContext,
|
|
18
|
+
requireContext,
|
|
19
|
+
setContext,
|
|
20
|
+
setSession,
|
|
21
|
+
setTurn
|
|
22
|
+
};
|
|
38
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|