agentix-cli 0.20.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agent-57MG4LBM.js → agent-Y4U4R3ZZ.js} +2 -2
- package/dist/{board-dashboard-HXDOYGIG.js → board-dashboard-2CPBWFOB.js} +339 -97
- package/dist/board-dashboard-2CPBWFOB.js.map +1 -0
- package/dist/chunk-2HXSJYAJ.js +15 -0
- package/dist/chunk-2HXSJYAJ.js.map +1 -0
- package/dist/{chunk-QW2OYR3N.js → chunk-ABVZHJUO.js} +2 -2
- package/dist/chunk-BHSPAP4U.js +44 -0
- package/dist/chunk-BHSPAP4U.js.map +1 -0
- package/dist/chunk-CO4YCIIA.js +13 -0
- package/dist/chunk-CO4YCIIA.js.map +1 -0
- package/dist/{chunk-4MREHZP5.js → chunk-GOLZ6NEL.js} +2 -2
- package/dist/chunk-GOLZ6NEL.js.map +1 -0
- package/dist/chunk-GSX4NK2N.js +2 -0
- package/dist/chunk-GSX4NK2N.js.map +1 -0
- package/dist/chunk-GV7S5BAX.js +2 -0
- package/dist/chunk-GV7S5BAX.js.map +1 -0
- package/dist/{chunk-WPPUOTY6.js → chunk-KX626FN4.js} +2 -2
- package/dist/chunk-OPKQNLGX.js +450 -0
- package/dist/chunk-OPKQNLGX.js.map +1 -0
- package/dist/chunk-OZOQKPJV.js +102 -0
- package/dist/chunk-OZOQKPJV.js.map +1 -0
- package/dist/{chunk-DLVOHCTA.js → chunk-P3TJHGO5.js} +2 -2
- package/dist/chunk-SZDACK6O.js +2 -0
- package/dist/chunk-SZDACK6O.js.map +1 -0
- package/dist/{chunk-TC3BSUP7.js → chunk-VYLZ7UYM.js} +2 -2
- package/dist/{chunk-WFHIIVLL.js → chunk-WHP4I44J.js} +75 -51
- package/dist/chunk-WHP4I44J.js.map +1 -0
- package/dist/chunk-X5D5AV5N.js +833 -0
- package/dist/chunk-X5D5AV5N.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/{config-QXWKEQON.js → config-BLOKGMER.js} +2 -2
- package/dist/config-mutator-RG7QY2EL.js +2 -0
- package/dist/doctor-ZTECTUHX.js +2 -0
- package/dist/index.d.ts +140 -3
- package/dist/index.js +1 -1
- package/dist/program-GZOJIWTB.js +2 -0
- package/dist/registry-QZIUSQ5J.js +2 -0
- package/dist/runner-BFYDWPUO.js +2 -0
- package/dist/scheduler-B2BQPV4M.js +2 -0
- package/dist/store-I3HEWVLQ.js +2 -0
- package/dist/store-I3HEWVLQ.js.map +1 -0
- package/dist/types-Y6ZCZ52Z.js +2 -0
- package/dist/types-Y6ZCZ52Z.js.map +1 -0
- package/dist/web/workflow-editor.global.js +12 -10
- package/dist/web/workflow-editor.global.js.map +1 -1
- package/dist/workspace-setup-DQCZX2NE.js +2 -0
- package/dist/workspace-setup-DQCZX2NE.js.map +1 -0
- package/package.json +1 -1
- package/dist/board-dashboard-HXDOYGIG.js.map +0 -1
- package/dist/chunk-23AUU4S2.js +0 -102
- package/dist/chunk-23AUU4S2.js.map +0 -1
- package/dist/chunk-4MREHZP5.js.map +0 -1
- package/dist/chunk-6B74TO2J.js +0 -743
- package/dist/chunk-6B74TO2J.js.map +0 -1
- package/dist/chunk-7GVXCOLO.js +0 -440
- package/dist/chunk-7GVXCOLO.js.map +0 -1
- package/dist/chunk-E4ZZILAK.js +0 -15
- package/dist/chunk-E4ZZILAK.js.map +0 -1
- package/dist/chunk-MBOLXKA2.js +0 -6
- package/dist/chunk-MBOLXKA2.js.map +0 -1
- package/dist/chunk-WFHIIVLL.js.map +0 -1
- package/dist/chunk-ZE2YFX4K.js +0 -45
- package/dist/chunk-ZE2YFX4K.js.map +0 -1
- package/dist/config-mutator-53XGR2NT.js +0 -2
- package/dist/doctor-SEOUFHSL.js +0 -2
- package/dist/program-WWCXMRU2.js +0 -2
- package/dist/registry-HM4ELSXS.js +0 -2
- package/dist/scheduler-XVFIK4XH.js +0 -2
- package/dist/workspace-setup-FPGN5VNY.js +0 -2
- /package/dist/{agent-57MG4LBM.js.map → agent-Y4U4R3ZZ.js.map} +0 -0
- /package/dist/{chunk-QW2OYR3N.js.map → chunk-ABVZHJUO.js.map} +0 -0
- /package/dist/{chunk-WPPUOTY6.js.map → chunk-KX626FN4.js.map} +0 -0
- /package/dist/{chunk-DLVOHCTA.js.map → chunk-P3TJHGO5.js.map} +0 -0
- /package/dist/{chunk-TC3BSUP7.js.map → chunk-VYLZ7UYM.js.map} +0 -0
- /package/dist/{config-QXWKEQON.js.map → config-BLOKGMER.js.map} +0 -0
- /package/dist/{config-mutator-53XGR2NT.js.map → config-mutator-RG7QY2EL.js.map} +0 -0
- /package/dist/{doctor-SEOUFHSL.js.map → doctor-ZTECTUHX.js.map} +0 -0
- /package/dist/{program-WWCXMRU2.js.map → program-GZOJIWTB.js.map} +0 -0
- /package/dist/{registry-HM4ELSXS.js.map → registry-QZIUSQ5J.js.map} +0 -0
- /package/dist/{scheduler-XVFIK4XH.js.map → runner-BFYDWPUO.js.map} +0 -0
- /package/dist/{workspace-setup-FPGN5VNY.js.map → scheduler-B2BQPV4M.js.map} +0 -0
package/dist/cli.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as s}from"./chunk-
|
|
2
|
+
import{a as s}from"./chunk-OPKQNLGX.js";import"./chunk-WHP4I44J.js";import"./chunk-CNNLREHD.js";import"./chunk-KX626FN4.js";import"./chunk-GV7S5BAX.js";import"./chunk-SZDACK6O.js";import"./chunk-GSX4NK2N.js";import"./chunk-X5D5AV5N.js";import"./chunk-2HXSJYAJ.js";import"./chunk-N67JZAXU.js";import"./chunk-AFRHKA7B.js";import"./chunk-EW27SCCC.js";import"./chunk-VYLZ7UYM.js";import"./chunk-SFQUP3BP.js";import"./chunk-ABVZHJUO.js";import"./chunk-P3TJHGO5.js";import"./chunk-CO4YCIIA.js";import"./chunk-BHSPAP4U.js";import"./chunk-CDNWCYF7.js";import"./chunk-OZOQKPJV.js";import"./chunk-5F3J55LG.js";import"./chunk-GOLZ6NEL.js";import"./chunk-WJXU5F4Z.js";import"./chunk-VWTBHLMX.js";import"./chunk-7P5QRX5W.js";import"./chunk-JTJIPNXY.js";import"./chunk-64P4QHSZ.js";import"./chunk-BFZUG66X.js";import"./chunk-SR3X25TN.js";import"./chunk-53NRX2NA.js";import"./chunk-A6BKSZQA.js";import"./chunk-JGXE2YNV.js";import"./chunk-VJUTQAPJ.js";import"./chunk-DJEZ2HVU.js";import"./chunk-DSYKYZMT.js";import"./chunk-IKBHHTIT.js";import"./chunk-QOYAX2FT.js";import"./chunk-4YCH6IZV.js";process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));async function o(){let r=await s();if(process.argv.slice(2).length===0){r.outputHelp();return}r.parse()}o();
|
|
3
3
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { buildProgram } from \"@/program\"\n\nprocess.on(\"SIGINT\", () => process.exit(0))\nprocess.on(\"SIGTERM\", () => process.exit(0))\n\nasync function main() {\n const program = await buildProgram()\n\n const args = process.argv.slice(2)\n if (args.length === 0) {\n program.outputHelp()\n return\n }\n\n program.parse()\n}\n\nmain()\n"],"mappings":";
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { buildProgram } from \"@/program\"\n\nprocess.on(\"SIGINT\", () => process.exit(0))\nprocess.on(\"SIGTERM\", () => process.exit(0))\n\nasync function main() {\n const program = await buildProgram()\n\n const args = process.argv.slice(2)\n if (args.length === 0) {\n program.outputHelp()\n return\n }\n\n program.parse()\n}\n\nmain()\n"],"mappings":";ojCAGA,QAAQ,GAAG,SAAU,IAAM,QAAQ,KAAK,CAAC,CAAC,EAC1C,QAAQ,GAAG,UAAW,IAAM,QAAQ,KAAK,CAAC,CAAC,EAE3C,eAAeA,GAAO,CACpB,IAAMC,EAAU,MAAMC,EAAa,EAGnC,GADa,QAAQ,KAAK,MAAM,CAAC,EACxB,SAAW,EAAG,CACrBD,EAAQ,WAAW,EACnB,OAGFA,EAAQ,MAAM,CAChB,CAEAD,EAAK","names":["main","program","buildProgram"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as a,d as b,e as c,f as d}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=config-
|
|
1
|
+
import{c as a,d as b,e as c,f as d}from"./chunk-CO4YCIIA.js";import"./chunk-4YCH6IZV.js";export{a as daemonConfigSchema,b as expandEnvVars,c as loadDaemonConfig,d as validateWorkspaces};
|
|
2
|
+
//# sourceMappingURL=config-BLOKGMER.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1366,6 +1366,19 @@ declare const agentConfigSchema: z.ZodObject<{
|
|
|
1366
1366
|
* agents that do long investigations or multi-file refactors. */
|
|
1367
1367
|
maxExecutionMinutes: z.ZodDefault<z.ZodNumber>;
|
|
1368
1368
|
permissionMode: z.ZodDefault<z.ZodString>;
|
|
1369
|
+
/** When true, this agent's claude-code dispatches reuse a long-lived
|
|
1370
|
+
* subprocess per (channel, chatId) instead of spawning a fresh
|
|
1371
|
+
* `claude -p` per turn. Driven over stdin via stream-json input,
|
|
1372
|
+
* which keeps the prompt cache warm across turns within a chat
|
|
1373
|
+
* (turn 1 cache_create=12897 → turn 2 cache_create=20 + cache_read
|
|
1374
|
+
* =24575 in the 2026-05-03 spike — 3-5× latency win on chat-shaped
|
|
1375
|
+
* workloads). When the registry can't allocate a slot (global or
|
|
1376
|
+
* per-agent cap exceeded), the dispatch falls back to spawn-per-task
|
|
1377
|
+
* silently with a warning log. Other tiers (sdk, orchestrator)
|
|
1378
|
+
* ignore this flag. Default false until the persistent path
|
|
1379
|
+
* finishes its soak; flip per-agent first, then per-fleet.
|
|
1380
|
+
* See docs/architecture/persistent-claude-process.md for the design. */
|
|
1381
|
+
persistentProcess: z.ZodDefault<z.ZodBoolean>;
|
|
1369
1382
|
queueMode: z.ZodDefault<z.ZodEnum<["collect", "followup", "drop"]>>;
|
|
1370
1383
|
heartbeat: z.ZodDefault<z.ZodObject<{
|
|
1371
1384
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1399,6 +1412,7 @@ declare const agentConfigSchema: z.ZodObject<{
|
|
|
1399
1412
|
maxConcurrent: number;
|
|
1400
1413
|
maxExecutionMinutes: number;
|
|
1401
1414
|
permissionMode: string;
|
|
1415
|
+
persistentProcess: boolean;
|
|
1402
1416
|
queueMode: "collect" | "followup" | "drop";
|
|
1403
1417
|
heartbeat: {
|
|
1404
1418
|
enabled: boolean;
|
|
@@ -1436,6 +1450,7 @@ declare const agentConfigSchema: z.ZodObject<{
|
|
|
1436
1450
|
maxConcurrent?: number | undefined;
|
|
1437
1451
|
maxExecutionMinutes?: number | undefined;
|
|
1438
1452
|
permissionMode?: string | undefined;
|
|
1453
|
+
persistentProcess?: boolean | undefined;
|
|
1439
1454
|
queueMode?: "collect" | "followup" | "drop" | undefined;
|
|
1440
1455
|
heartbeat?: {
|
|
1441
1456
|
enabled?: boolean | undefined;
|
|
@@ -1606,6 +1621,19 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
1606
1621
|
* agents that do long investigations or multi-file refactors. */
|
|
1607
1622
|
maxExecutionMinutes: z.ZodDefault<z.ZodNumber>;
|
|
1608
1623
|
permissionMode: z.ZodDefault<z.ZodString>;
|
|
1624
|
+
/** When true, this agent's claude-code dispatches reuse a long-lived
|
|
1625
|
+
* subprocess per (channel, chatId) instead of spawning a fresh
|
|
1626
|
+
* `claude -p` per turn. Driven over stdin via stream-json input,
|
|
1627
|
+
* which keeps the prompt cache warm across turns within a chat
|
|
1628
|
+
* (turn 1 cache_create=12897 → turn 2 cache_create=20 + cache_read
|
|
1629
|
+
* =24575 in the 2026-05-03 spike — 3-5× latency win on chat-shaped
|
|
1630
|
+
* workloads). When the registry can't allocate a slot (global or
|
|
1631
|
+
* per-agent cap exceeded), the dispatch falls back to spawn-per-task
|
|
1632
|
+
* silently with a warning log. Other tiers (sdk, orchestrator)
|
|
1633
|
+
* ignore this flag. Default false until the persistent path
|
|
1634
|
+
* finishes its soak; flip per-agent first, then per-fleet.
|
|
1635
|
+
* See docs/architecture/persistent-claude-process.md for the design. */
|
|
1636
|
+
persistentProcess: z.ZodDefault<z.ZodBoolean>;
|
|
1609
1637
|
queueMode: z.ZodDefault<z.ZodEnum<["collect", "followup", "drop"]>>;
|
|
1610
1638
|
heartbeat: z.ZodDefault<z.ZodObject<{
|
|
1611
1639
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -1639,6 +1667,7 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
1639
1667
|
maxConcurrent: number;
|
|
1640
1668
|
maxExecutionMinutes: number;
|
|
1641
1669
|
permissionMode: string;
|
|
1670
|
+
persistentProcess: boolean;
|
|
1642
1671
|
queueMode: "collect" | "followup" | "drop";
|
|
1643
1672
|
heartbeat: {
|
|
1644
1673
|
enabled: boolean;
|
|
@@ -1676,6 +1705,7 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
1676
1705
|
maxConcurrent?: number | undefined;
|
|
1677
1706
|
maxExecutionMinutes?: number | undefined;
|
|
1678
1707
|
permissionMode?: string | undefined;
|
|
1708
|
+
persistentProcess?: boolean | undefined;
|
|
1679
1709
|
queueMode?: "collect" | "followup" | "drop" | undefined;
|
|
1680
1710
|
heartbeat?: {
|
|
1681
1711
|
enabled?: boolean | undefined;
|
|
@@ -2888,6 +2918,22 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
2888
2918
|
}>, "many">>;
|
|
2889
2919
|
workTickMinutes: z.ZodDefault<z.ZodNumber>;
|
|
2890
2920
|
idleQueueThreshold: z.ZodDefault<z.ZodNumber>;
|
|
2921
|
+
standup: z.ZodDefault<z.ZodObject<{
|
|
2922
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
2923
|
+
plansDir: z.ZodDefault<z.ZodString>;
|
|
2924
|
+
maxAgentsPerDay: z.ZodDefault<z.ZodNumber>;
|
|
2925
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
2926
|
+
}, "strip", z.ZodTypeAny, {
|
|
2927
|
+
enabled: boolean;
|
|
2928
|
+
plansDir: string;
|
|
2929
|
+
maxAgentsPerDay: number;
|
|
2930
|
+
dryRun: boolean;
|
|
2931
|
+
}, {
|
|
2932
|
+
enabled?: boolean | undefined;
|
|
2933
|
+
plansDir?: string | undefined;
|
|
2934
|
+
maxAgentsPerDay?: number | undefined;
|
|
2935
|
+
dryRun?: boolean | undefined;
|
|
2936
|
+
}>>;
|
|
2891
2937
|
}, "strip", z.ZodTypeAny, {
|
|
2892
2938
|
enabled: boolean;
|
|
2893
2939
|
projects: {
|
|
@@ -2943,6 +2989,12 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
2943
2989
|
}[];
|
|
2944
2990
|
workTickMinutes: number;
|
|
2945
2991
|
idleQueueThreshold: number;
|
|
2992
|
+
standup: {
|
|
2993
|
+
enabled: boolean;
|
|
2994
|
+
plansDir: string;
|
|
2995
|
+
maxAgentsPerDay: number;
|
|
2996
|
+
dryRun: boolean;
|
|
2997
|
+
};
|
|
2946
2998
|
}, {
|
|
2947
2999
|
mainChannel: {
|
|
2948
3000
|
channel: string;
|
|
@@ -2998,6 +3050,12 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
2998
3050
|
}[] | undefined;
|
|
2999
3051
|
workTickMinutes?: number | undefined;
|
|
3000
3052
|
idleQueueThreshold?: number | undefined;
|
|
3053
|
+
standup?: {
|
|
3054
|
+
enabled?: boolean | undefined;
|
|
3055
|
+
plansDir?: string | undefined;
|
|
3056
|
+
maxAgentsPerDay?: number | undefined;
|
|
3057
|
+
dryRun?: boolean | undefined;
|
|
3058
|
+
} | undefined;
|
|
3001
3059
|
}>>;
|
|
3002
3060
|
boards: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
3003
3061
|
id: z.ZodString;
|
|
@@ -3399,6 +3457,7 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3399
3457
|
maxConcurrent: number;
|
|
3400
3458
|
maxExecutionMinutes: number;
|
|
3401
3459
|
permissionMode: string;
|
|
3460
|
+
persistentProcess: boolean;
|
|
3402
3461
|
queueMode: "collect" | "followup" | "drop";
|
|
3403
3462
|
heartbeat: {
|
|
3404
3463
|
enabled: boolean;
|
|
@@ -3750,6 +3809,12 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3750
3809
|
}[];
|
|
3751
3810
|
workTickMinutes: number;
|
|
3752
3811
|
idleQueueThreshold: number;
|
|
3812
|
+
standup: {
|
|
3813
|
+
enabled: boolean;
|
|
3814
|
+
plansDir: string;
|
|
3815
|
+
maxAgentsPerDay: number;
|
|
3816
|
+
dryRun: boolean;
|
|
3817
|
+
};
|
|
3753
3818
|
} | undefined;
|
|
3754
3819
|
}, {
|
|
3755
3820
|
node: {
|
|
@@ -3778,6 +3843,7 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
3778
3843
|
maxConcurrent?: number | undefined;
|
|
3779
3844
|
maxExecutionMinutes?: number | undefined;
|
|
3780
3845
|
permissionMode?: string | undefined;
|
|
3846
|
+
persistentProcess?: boolean | undefined;
|
|
3781
3847
|
queueMode?: "collect" | "followup" | "drop" | undefined;
|
|
3782
3848
|
heartbeat?: {
|
|
3783
3849
|
enabled?: boolean | undefined;
|
|
@@ -4042,6 +4108,12 @@ declare const daemonConfigSchema: z.ZodObject<{
|
|
|
4042
4108
|
}[] | undefined;
|
|
4043
4109
|
workTickMinutes?: number | undefined;
|
|
4044
4110
|
idleQueueThreshold?: number | undefined;
|
|
4111
|
+
standup?: {
|
|
4112
|
+
enabled?: boolean | undefined;
|
|
4113
|
+
plansDir?: string | undefined;
|
|
4114
|
+
maxAgentsPerDay?: number | undefined;
|
|
4115
|
+
dryRun?: boolean | undefined;
|
|
4116
|
+
} | undefined;
|
|
4045
4117
|
} | undefined;
|
|
4046
4118
|
boards?: {
|
|
4047
4119
|
id: string;
|
|
@@ -4376,6 +4448,13 @@ declare class AgentXDaemon {
|
|
|
4376
4448
|
private loadedPlugins;
|
|
4377
4449
|
private readonly agentMemory;
|
|
4378
4450
|
private contacts;
|
|
4451
|
+
/** Persistent-claude process registry. Null when no agent has
|
|
4452
|
+
* persistentProcess: true (legacy spawn-per-task path). */
|
|
4453
|
+
private processRegistry;
|
|
4454
|
+
/** Unified observability bus. Publishers (workflow engine, mesh,
|
|
4455
|
+
* channels, signals) emit here; subscribers (SSE, CLI, board
|
|
4456
|
+
* dashboard) filter by kind / workflow / actor. Created eagerly so
|
|
4457
|
+
* early boot events don't fall through. */
|
|
4379
4458
|
readonly events: EventBus;
|
|
4380
4459
|
private log;
|
|
4381
4460
|
private sseClients;
|
|
@@ -4728,6 +4807,12 @@ interface AgentTask {
|
|
|
4728
4807
|
eventId: string;
|
|
4729
4808
|
decidedBy: string;
|
|
4730
4809
|
};
|
|
4810
|
+
/** ULID for the per-execution trace row in task_traces (improvement
|
|
4811
|
+
* plan #2). Allocated by registry.execute right before emitting the
|
|
4812
|
+
* task:started bus event so per-step capture sites in the streaming
|
|
4813
|
+
* parser can append rows under the same id. Optional — when unset,
|
|
4814
|
+
* step capture is a no-op. */
|
|
4815
|
+
taskId?: string;
|
|
4731
4816
|
context?: {
|
|
4732
4817
|
channel?: string;
|
|
4733
4818
|
sender?: string;
|
|
@@ -4811,9 +4896,6 @@ declare function executeSdk(agent: AgentDef, task: AgentTask, apiKey: string, hi
|
|
|
4811
4896
|
* Execute a task using agentx's own orchestrator (tier: "orchestrator").
|
|
4812
4897
|
*/
|
|
4813
4898
|
declare function executeOrchestrator(agent: AgentDef, task: AgentTask, apiKey?: string, historyContext?: string): Promise<AgentResponse>;
|
|
4814
|
-
/**
|
|
4815
|
-
* Route a task to the correct execution tier.
|
|
4816
|
-
*/
|
|
4817
4899
|
declare function executeTask(agent: AgentDef, task: AgentTask, providers: Record<string, {
|
|
4818
4900
|
apiKey?: string;
|
|
4819
4901
|
}>, onDelta?: StreamCallback, historyContext?: string, resumeSessionId?: string, onEvent?: (event: any) => void): Promise<AgentResponse>;
|
|
@@ -6952,6 +7034,37 @@ declare const businessConfigSchema: z.ZodObject<{
|
|
|
6952
7034
|
workTickMinutes: z.ZodDefault<z.ZodNumber>;
|
|
6953
7035
|
/** Max queue depth for an idle agent before skipping the work tick (avoids piling up). */
|
|
6954
7036
|
idleQueueThreshold: z.ZodDefault<z.ZodNumber>;
|
|
7037
|
+
/** Standup-tick gating + plan-driven priorities. The day-cycle's morning
|
|
7038
|
+
* STANDUP used to fire unconditionally per agent — operators reported it
|
|
7039
|
+
* as "mechanical" because it dispatched a Claude turn even when no human
|
|
7040
|
+
* had set a plan for the day. Now: the cycle reads
|
|
7041
|
+
* .agentx/plans/<date>.md (day → week → month fallback) and either
|
|
7042
|
+
* injects the plan as standup priorities, or posts a "no plan today"
|
|
7043
|
+
* notification to mainChannel and dispatches no agent. */
|
|
7044
|
+
standup: z.ZodDefault<z.ZodObject<{
|
|
7045
|
+
/** Master switch. When false, fireStandup is a no-op (silent). */
|
|
7046
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
7047
|
+
/** Plans directory, relative to the daemon CWD. */
|
|
7048
|
+
plansDir: z.ZodDefault<z.ZodString>;
|
|
7049
|
+
/** Hard ceiling on how many agents the standup tick can dispatch in a
|
|
7050
|
+
* single morning — guards against an org-chart misconfiguration
|
|
7051
|
+
* fanning out to dozens of Claude calls before anyone notices. */
|
|
7052
|
+
maxAgentsPerDay: z.ZodDefault<z.ZodNumber>;
|
|
7053
|
+
/** When true, even with a plan present the cycle won't dispatch — only
|
|
7054
|
+
* posts the resolved plan to mainChannel for human review. Useful as
|
|
7055
|
+
* a kill-switch while iterating on plan formats. */
|
|
7056
|
+
dryRun: z.ZodDefault<z.ZodBoolean>;
|
|
7057
|
+
}, "strip", z.ZodTypeAny, {
|
|
7058
|
+
enabled: boolean;
|
|
7059
|
+
plansDir: string;
|
|
7060
|
+
maxAgentsPerDay: number;
|
|
7061
|
+
dryRun: boolean;
|
|
7062
|
+
}, {
|
|
7063
|
+
enabled?: boolean | undefined;
|
|
7064
|
+
plansDir?: string | undefined;
|
|
7065
|
+
maxAgentsPerDay?: number | undefined;
|
|
7066
|
+
dryRun?: boolean | undefined;
|
|
7067
|
+
}>>;
|
|
6955
7068
|
}, "strip", z.ZodTypeAny, {
|
|
6956
7069
|
enabled: boolean;
|
|
6957
7070
|
projects: {
|
|
@@ -7007,6 +7120,12 @@ declare const businessConfigSchema: z.ZodObject<{
|
|
|
7007
7120
|
}[];
|
|
7008
7121
|
workTickMinutes: number;
|
|
7009
7122
|
idleQueueThreshold: number;
|
|
7123
|
+
standup: {
|
|
7124
|
+
enabled: boolean;
|
|
7125
|
+
plansDir: string;
|
|
7126
|
+
maxAgentsPerDay: number;
|
|
7127
|
+
dryRun: boolean;
|
|
7128
|
+
};
|
|
7010
7129
|
}, {
|
|
7011
7130
|
mainChannel: {
|
|
7012
7131
|
channel: string;
|
|
@@ -7062,6 +7181,12 @@ declare const businessConfigSchema: z.ZodObject<{
|
|
|
7062
7181
|
}[] | undefined;
|
|
7063
7182
|
workTickMinutes?: number | undefined;
|
|
7064
7183
|
idleQueueThreshold?: number | undefined;
|
|
7184
|
+
standup?: {
|
|
7185
|
+
enabled?: boolean | undefined;
|
|
7186
|
+
plansDir?: string | undefined;
|
|
7187
|
+
maxAgentsPerDay?: number | undefined;
|
|
7188
|
+
dryRun?: boolean | undefined;
|
|
7189
|
+
} | undefined;
|
|
7065
7190
|
}>;
|
|
7066
7191
|
type BusinessConfig = z.infer<typeof businessConfigSchema>;
|
|
7067
7192
|
type BusinessRole = z.infer<typeof roleSchema>;
|
|
@@ -7295,6 +7420,9 @@ declare class DayCycle {
|
|
|
7295
7420
|
private day;
|
|
7296
7421
|
private currentDate;
|
|
7297
7422
|
private runningTask;
|
|
7423
|
+
private standupsFiredToday;
|
|
7424
|
+
private noPlanNoticePostedFor?;
|
|
7425
|
+
private planStore;
|
|
7298
7426
|
constructor(config: BusinessConfig, org: Organization, schedule: Schedule, registry: AgentRegistry, reporter: Reporter, kpi: KPI, workSource: WorkSource, daemonBase: string, log: (...args: unknown[]) => void);
|
|
7299
7427
|
start(): void;
|
|
7300
7428
|
stop(): void;
|
|
@@ -7302,6 +7430,15 @@ declare class DayCycle {
|
|
|
7302
7430
|
private roleContext;
|
|
7303
7431
|
private runLifecycle;
|
|
7304
7432
|
private fireStandup;
|
|
7433
|
+
/** Post one "no plan today" line to mainChannel per calendar date. After
|
|
7434
|
+
* the first STANDUP would have fired, we let the team know the cycle
|
|
7435
|
+
* saw nothing to do — quiet enough not to be annoying, loud enough that
|
|
7436
|
+
* a forgotten plan doesn't go unnoticed for a whole morning. */
|
|
7437
|
+
private postNoPlanNoticeOnce;
|
|
7438
|
+
/** Dry-run preview: post the resolved plan to the main channel so the
|
|
7439
|
+
* operator can eyeball it before turning dryRun off. Once per day per
|
|
7440
|
+
* resolved plan. */
|
|
7441
|
+
private postPlanPreviewOnce;
|
|
7305
7442
|
private fireWorkTick;
|
|
7306
7443
|
private fireWrap;
|
|
7307
7444
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as U}from"./chunk-4ITQP3XL.js";import{a as yt,b as re,c as ae,d as vt,e as xt,f as Ct,
|
|
1
|
+
import{a as U}from"./chunk-4ITQP3XL.js";import{a as yt,b as re,c as ae,d as vt,e as xt,f as Ct,m as bt,n as $t,o as Tt}from"./chunk-X5D5AV5N.js";import"./chunk-2HXSJYAJ.js";import"./chunk-N67JZAXU.js";import"./chunk-AFRHKA7B.js";import"./chunk-EW27SCCC.js";import{A as H,B as E,C as I,a as be,b as $e,c as Te,d as je,e as _e,f as Ue,g as Be,h as We,i as qe,j as Ve,k as Ye,l as F,m as Q,n as Ze,o as et,p as tt,q as j,r as st,s as ot,t as nt,u as P,v as Z,w as it,x as rt,y as at,z as ht}from"./chunk-VYLZ7UYM.js";import{a as X,b as M,c as _}from"./chunk-SFQUP3BP.js";import{f as Pt}from"./chunk-ABVZHJUO.js";import"./chunk-P3TJHGO5.js";import{c as kt,e as wt,f as St}from"./chunk-CO4YCIIA.js";import"./chunk-BHSPAP4U.js";import"./chunk-CDNWCYF7.js";import{c as lt,d as ct,e as dt,f as pt,n as ut}from"./chunk-OZOQKPJV.js";import"./chunk-5F3J55LG.js";import"./chunk-GOLZ6NEL.js";import"./chunk-WJXU5F4Z.js";import"./chunk-VWTBHLMX.js";import{a as gt,b as mt,e as ft}from"./chunk-7P5QRX5W.js";import"./chunk-JTJIPNXY.js";import"./chunk-64P4QHSZ.js";import"./chunk-BFZUG66X.js";import"./chunk-SR3X25TN.js";import"./chunk-53NRX2NA.js";import"./chunk-A6BKSZQA.js";import{a as Re,b as Ae,c as Me,d as Ee,e as Ie,f as Oe,g as Ge,h as De,i as Le,j as Ne,k as Fe,l as A}from"./chunk-JGXE2YNV.js";import{a as m}from"./chunk-VJUTQAPJ.js";import{a as He,b as Je,c as N,d as Ke}from"./chunk-DJEZ2HVU.js";import{a as ze,b as Xe,e as Qe}from"./chunk-DSYKYZMT.js";import"./chunk-IKBHHTIT.js";import"./chunk-QOYAX2FT.js";import"./chunk-4YCH6IZV.js";import{execa as Rt}from"execa";import{existsSync as le,promises as ee}from"fs";import x from"path";import pe from"node-fetch";async function At(n,e){let t=n.split("/");if(t.length<2)throw new Error(`Invalid skill package ID: ${n}. Expected format: owner/repo`);let s=t[0],i=t[1],o=t[2];try{let a=o?`${s}/${i}/${o}`:`${s}/${i}`;await Rt("npx",["-y","skills","add",a],{cwd:e,stdio:"pipe"}),m.success(`Installed skill package: ${n}`);let r=x.resolve(e,".skills",`${s}_${i}`);if(le(r))return await de(r,n);let l=x.resolve(e,".skills");return le(l)?await de(l,n):[]}catch{return m.info(`Fetching skills directly from GitHub: ${s}/${i}`),await Mt(s,i,o,e)}}async function Mt(n,e,t,s){let i=[];try{let o=`https://api.github.com/repos/${n}/${e}/git/trees/main?recursive=1`,a=await pe(o);if(!a.ok)throw new Error(`GitHub API error: ${a.status}`);let l=(await a.json()).tree.filter(c=>c.type==="blob"&&c.path.endsWith("SKILL.md"));if(t){let c=l.find(g=>g.path.includes(`/${t}/`)||g.path===`${t}/SKILL.md`);if(c){let g=await ce(n,e,c.path,s);g&&i.push(g)}}else for(let c of l){let g=await ce(n,e,c.path,s);g&&i.push(g)}}catch(o){m.error(`Failed to fetch skills from GitHub: ${o.message}`)}return i}async function ce(n,e,t,s){try{let i=`https://raw.githubusercontent.com/${n}/${e}/main/${t}`,o=await pe(i);if(!o.ok)return null;let a=await o.text(),r=N(a);if(r){r.source="remote",r.packageId=`${n}/${e}`;let l=x.dirname(t),c=x.resolve(s,".skills",`${n}_${e}`,l);await ee.mkdir(c,{recursive:!0}),await ee.writeFile(x.resolve(c,"SKILL.md"),a),r.path=x.resolve(c,"SKILL.md")}return r}catch{return null}}async function de(n,e){let t=[],{default:s}=await import("fast-glob"),i=await s.glob("**/SKILL.md",{cwd:n,deep:5});for(let o of i)try{let a=x.resolve(n,o),r=await ee.readFile(a,"utf8"),l=N(r);l&&(l.source="remote",l.path=a,l.packageId=e,t.push(l))}catch{}return t}async function Et(n,e,t,s,i){let o=["---",`name: ${n}`,`description: ${e}`];if(s?.length){o.push("tags:");for(let a of s)o.push(` - ${a}`)}if(i?.length){o.push("globs:");for(let a of i)o.push(` - ${a}`)}return o.push("---"),`${o.join(`
|
|
2
2
|
`)}
|
|
3
3
|
|
|
4
4
|
${t}`}async function It(n){let{loadLocalSkills:e}=await import("./loader-5CA3O5GM.js");return e(n)}async function Ot(n,e,t,s,i){let a=[{role:"system",content:`You are a skill author for the Agent Skills ecosystem (skills.sh).
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a}from"./chunk-OPKQNLGX.js";import"./chunk-WHP4I44J.js";import"./chunk-CNNLREHD.js";import"./chunk-KX626FN4.js";import"./chunk-GV7S5BAX.js";import"./chunk-SZDACK6O.js";import"./chunk-GSX4NK2N.js";import"./chunk-X5D5AV5N.js";import"./chunk-2HXSJYAJ.js";import"./chunk-N67JZAXU.js";import"./chunk-AFRHKA7B.js";import"./chunk-EW27SCCC.js";import"./chunk-VYLZ7UYM.js";import"./chunk-SFQUP3BP.js";import"./chunk-ABVZHJUO.js";import"./chunk-P3TJHGO5.js";import"./chunk-CO4YCIIA.js";import"./chunk-BHSPAP4U.js";import"./chunk-CDNWCYF7.js";import"./chunk-OZOQKPJV.js";import"./chunk-5F3J55LG.js";import"./chunk-GOLZ6NEL.js";import"./chunk-WJXU5F4Z.js";import"./chunk-VWTBHLMX.js";import"./chunk-7P5QRX5W.js";import"./chunk-JTJIPNXY.js";import"./chunk-64P4QHSZ.js";import"./chunk-BFZUG66X.js";import"./chunk-SR3X25TN.js";import"./chunk-53NRX2NA.js";import"./chunk-A6BKSZQA.js";import"./chunk-JGXE2YNV.js";import"./chunk-VJUTQAPJ.js";import"./chunk-DJEZ2HVU.js";import"./chunk-DSYKYZMT.js";import"./chunk-IKBHHTIT.js";import"./chunk-QOYAX2FT.js";import"./chunk-4YCH6IZV.js";export{a as buildProgram};
|
|
2
|
+
//# sourceMappingURL=program-GZOJIWTB.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as a,j as b,k as c,l as d,m as e,n as f}from"./chunk-OZOQKPJV.js";import"./chunk-5F3J55LG.js";import"./chunk-GOLZ6NEL.js";import"./chunk-WJXU5F4Z.js";import"./chunk-VWTBHLMX.js";import"./chunk-7P5QRX5W.js";import"./chunk-JTJIPNXY.js";import"./chunk-64P4QHSZ.js";import"./chunk-BFZUG66X.js";import"./chunk-SR3X25TN.js";import"./chunk-53NRX2NA.js";import"./chunk-A6BKSZQA.js";import"./chunk-JGXE2YNV.js";import"./chunk-VJUTQAPJ.js";import"./chunk-DSYKYZMT.js";import"./chunk-IKBHHTIT.js";import"./chunk-QOYAX2FT.js";import"./chunk-4YCH6IZV.js";export{f as AgentRegistry,c as TRACE_STEP_SUMMARY_BYTES,d as clipForTrace,e as emitTraceStepsFromStreamEvent,b as getGlobalRegistry,a as setGlobalRegistry};
|
|
2
|
+
//# sourceMappingURL=registry-QZIUSQ5J.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{e as a,f as b}from"./chunk-ABVZHJUO.js";import"./chunk-P3TJHGO5.js";import"./chunk-CO4YCIIA.js";import"./chunk-GOLZ6NEL.js";import"./chunk-VJUTQAPJ.js";import"./chunk-4YCH6IZV.js";export{b as CronScheduler,a as getNextCronDate};
|
|
2
|
+
//# sourceMappingURL=scheduler-B2BQPV4M.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|