@nac3/forge-cli 0.2.0-alpha.59z.121 → 0.2.0-alpha.59z.158

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.
Files changed (161) hide show
  1. package/dist/agents/bridge.d.ts +69 -0
  2. package/dist/agents/bridge.d.ts.map +1 -0
  3. package/dist/agents/bridge.js +295 -0
  4. package/dist/agents/bridge.js.map +1 -0
  5. package/dist/agents/cli_real.d.ts +38 -0
  6. package/dist/agents/cli_real.d.ts.map +1 -0
  7. package/dist/agents/cli_real.js +46 -0
  8. package/dist/agents/cli_real.js.map +1 -0
  9. package/dist/agents/config_schema.d.ts +1 -1
  10. package/dist/agents/config_schema.d.ts.map +1 -1
  11. package/dist/agents/config_schema.js +16 -0
  12. package/dist/agents/config_schema.js.map +1 -1
  13. package/dist/agents/defaults.d.ts.map +1 -1
  14. package/dist/agents/defaults.js.map +1 -1
  15. package/dist/agents/delegate.d.ts +36 -0
  16. package/dist/agents/delegate.d.ts.map +1 -0
  17. package/dist/agents/delegate.js +68 -0
  18. package/dist/agents/delegate.js.map +1 -0
  19. package/dist/agents/iterative_step.d.ts +95 -0
  20. package/dist/agents/iterative_step.d.ts.map +1 -0
  21. package/dist/agents/iterative_step.js +249 -0
  22. package/dist/agents/iterative_step.js.map +1 -0
  23. package/dist/agents/llm_step.d.ts +50 -0
  24. package/dist/agents/llm_step.d.ts.map +1 -0
  25. package/dist/agents/llm_step.js +28 -0
  26. package/dist/agents/llm_step.js.map +1 -0
  27. package/dist/agents/real_step_factory.d.ts +95 -0
  28. package/dist/agents/real_step_factory.d.ts.map +1 -0
  29. package/dist/agents/real_step_factory.js +51 -0
  30. package/dist/agents/real_step_factory.js.map +1 -0
  31. package/dist/agents/runner.d.ts +14 -0
  32. package/dist/agents/runner.d.ts.map +1 -1
  33. package/dist/agents/runner.js +10 -1
  34. package/dist/agents/runner.js.map +1 -1
  35. package/dist/agents/runtime.d.ts +115 -0
  36. package/dist/agents/runtime.d.ts.map +1 -0
  37. package/dist/agents/runtime.js +429 -0
  38. package/dist/agents/runtime.js.map +1 -0
  39. package/dist/agents/system_prompt.d.ts +36 -0
  40. package/dist/agents/system_prompt.d.ts.map +1 -0
  41. package/dist/agents/system_prompt.js +101 -0
  42. package/dist/agents/system_prompt.js.map +1 -0
  43. package/dist/agents/types.d.ts +12 -1
  44. package/dist/agents/types.d.ts.map +1 -1
  45. package/dist/agents/types.js.map +1 -1
  46. package/dist/bin/yf.d.ts.map +1 -1
  47. package/dist/bin/yf.js +9 -0
  48. package/dist/bin/yf.js.map +1 -1
  49. package/dist/chat/claude_cli.d.ts +42 -0
  50. package/dist/chat/claude_cli.d.ts.map +1 -0
  51. package/dist/chat/claude_cli.js +299 -0
  52. package/dist/chat/claude_cli.js.map +1 -0
  53. package/dist/chat/graph_snapshot.d.ts +38 -0
  54. package/dist/chat/graph_snapshot.d.ts.map +1 -0
  55. package/dist/chat/graph_snapshot.js +159 -0
  56. package/dist/chat/graph_snapshot.js.map +1 -0
  57. package/dist/chat/ingest_session.d.ts +24 -4
  58. package/dist/chat/ingest_session.d.ts.map +1 -1
  59. package/dist/chat/ingest_session.js +139 -4
  60. package/dist/chat/ingest_session.js.map +1 -1
  61. package/dist/chat/panel.d.ts.map +1 -1
  62. package/dist/chat/panel.js +1358 -0
  63. package/dist/chat/panel.js.map +1 -1
  64. package/dist/chat/server.d.ts +21 -0
  65. package/dist/chat/server.d.ts.map +1 -1
  66. package/dist/chat/server.js +904 -4
  67. package/dist/chat/server.js.map +1 -1
  68. package/dist/chat/tools/nac3_invoke.d.ts +5 -0
  69. package/dist/chat/tools/nac3_invoke.d.ts.map +1 -1
  70. package/dist/chat/tools/nac3_invoke.js +1 -0
  71. package/dist/chat/tools/nac3_invoke.js.map +1 -1
  72. package/dist/chat/tools.d.ts.map +1 -1
  73. package/dist/chat/tools.js +12 -0
  74. package/dist/chat/tools.js.map +1 -1
  75. package/dist/commands/agent.d.ts +12 -1
  76. package/dist/commands/agent.d.ts.map +1 -1
  77. package/dist/commands/agent.js +92 -1
  78. package/dist/commands/agent.js.map +1 -1
  79. package/dist/commands/chat.d.ts +10 -0
  80. package/dist/commands/chat.d.ts.map +1 -1
  81. package/dist/commands/chat.js +12 -1
  82. package/dist/commands/chat.js.map +1 -1
  83. package/dist/commands/director.d.ts +37 -0
  84. package/dist/commands/director.d.ts.map +1 -0
  85. package/dist/commands/director.js +290 -0
  86. package/dist/commands/director.js.map +1 -0
  87. package/dist/commands/keys_setup.d.ts +1 -0
  88. package/dist/commands/keys_setup.d.ts.map +1 -1
  89. package/dist/commands/keys_setup.js +61 -11
  90. package/dist/commands/keys_setup.js.map +1 -1
  91. package/dist/core/pilot_setup.d.ts +14 -1
  92. package/dist/core/pilot_setup.d.ts.map +1 -1
  93. package/dist/core/pilot_setup.js +62 -1
  94. package/dist/core/pilot_setup.js.map +1 -1
  95. package/dist/core/provider_keys.d.ts.map +1 -1
  96. package/dist/core/provider_keys.js +12 -5
  97. package/dist/core/provider_keys.js.map +1 -1
  98. package/dist/design/yujin_design_resolver.d.ts +77 -0
  99. package/dist/design/yujin_design_resolver.d.ts.map +1 -0
  100. package/dist/design/yujin_design_resolver.js +113 -0
  101. package/dist/design/yujin_design_resolver.js.map +1 -0
  102. package/dist/docs/doctrine/default-design-system.md +120 -0
  103. package/dist/docs/doctrine/language-sovereignty.md +143 -0
  104. package/dist/docs/doctrine/testing-policy.md +211 -0
  105. package/dist/nac3/approval_queue.d.ts +8 -0
  106. package/dist/nac3/approval_queue.d.ts.map +1 -1
  107. package/dist/nac3/approval_queue.js.map +1 -1
  108. package/dist/nac3/internal_manifest.d.ts.map +1 -1
  109. package/dist/nac3/internal_manifest.js +178 -0
  110. package/dist/nac3/internal_manifest.js.map +1 -1
  111. package/dist/office/excel.d.ts +22 -0
  112. package/dist/office/excel.d.ts.map +1 -1
  113. package/dist/office/excel.js +82 -0
  114. package/dist/office/excel.js.map +1 -1
  115. package/dist/qa/brain_matrix/fixtures/scenario_a11y_focus_after_open.json +22 -0
  116. package/dist/qa/brain_matrix/fixtures/scenario_a11y_label_unlabeled_button.json +26 -0
  117. package/dist/qa/brain_matrix/fixtures/scenario_agent_director_consults_workflow_before_dispatch.json +42 -0
  118. package/dist/qa/brain_matrix/fixtures/scenario_analyst_extracts_then_returns.json +28 -0
  119. package/dist/qa/brain_matrix/fixtures/scenario_coder_consults_nac_spec_before_writing.json +28 -0
  120. package/dist/qa/brain_matrix/fixtures/scenario_default_design_system_override_shadcn.json +45 -0
  121. package/dist/qa/brain_matrix/fixtures/scenario_default_design_system_use_card_template.json +44 -0
  122. package/dist/qa/brain_matrix/fixtures/scenario_director_delegates_to_analyst.json +26 -0
  123. package/dist/qa/brain_matrix/fixtures/scenario_director_no_self_delegation.json +20 -0
  124. package/dist/qa/brain_matrix/fixtures/scenario_director_terminal_done_marker.json +19 -0
  125. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_default_design_system.json +50 -0
  126. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_language_sovereignty.json +53 -0
  127. package/dist/qa/brain_matrix/fixtures/scenario_doctrine_discover_testing_policy.json +55 -0
  128. package/dist/qa/brain_matrix/fixtures/scenario_language_sovereignty_not_conducive_spa_python.json +61 -0
  129. package/dist/qa/brain_matrix/fixtures/scenario_language_sovereignty_user_picks_python.json +48 -0
  130. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_destructive_pauses_for_r8.json +42 -0
  131. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_happy_path_writes_pizarron.json +76 -0
  132. package/dist/qa/brain_matrix/fixtures/scenario_mcp_invoke_network_timeout_graceful.json +41 -0
  133. package/dist/qa/brain_matrix/fixtures/scenario_no_hardcoded_color_use_token.json +47 -0
  134. package/dist/qa/brain_matrix/fixtures/scenario_office_excel_update_cell_picks_right_verb.json +26 -0
  135. package/dist/qa/brain_matrix/fixtures/scenario_scaffolder_destructive_pauses_for_approval.json +23 -0
  136. package/dist/qa/brain_matrix/fixtures/scenario_sumie_icon_pick_from_catalog.json +56 -0
  137. package/dist/qa/brain_matrix/fixtures/scenario_tester_uses_shell_exec_only.json +27 -0
  138. package/dist/version.d.ts +1 -1
  139. package/dist/version.js +1 -1
  140. package/dist/workflow/graph.d.ts +59 -0
  141. package/dist/workflow/graph.d.ts.map +1 -0
  142. package/dist/workflow/graph.js +137 -0
  143. package/dist/workflow/graph.js.map +1 -0
  144. package/dist/workflow/state.d.ts +34 -0
  145. package/dist/workflow/state.d.ts.map +1 -1
  146. package/dist/workflow/state.js.map +1 -1
  147. package/docs/doctrine/default-design-system.md +120 -0
  148. package/docs/doctrine/language-sovereignty.md +143 -0
  149. package/docs/doctrine/testing-policy.md +211 -0
  150. package/package.json +102 -100
  151. package/src/i18n/catalogs/ar.json +20 -1
  152. package/src/i18n/catalogs/de.json +20 -1
  153. package/src/i18n/catalogs/en.json +20 -21
  154. package/src/i18n/catalogs/es.json +20 -21
  155. package/src/i18n/catalogs/fr.json +20 -1
  156. package/src/i18n/catalogs/hi.json +20 -1
  157. package/src/i18n/catalogs/it.json +20 -1
  158. package/src/i18n/catalogs/ja.json +20 -1
  159. package/src/i18n/catalogs/pt.json +20 -1
  160. package/src/i18n/catalogs/zh.json +20 -1
  161. package/templates/sumi-context.template.md +57 -0
@@ -0,0 +1,69 @@
1
+ import { type AgentMessage, type AgentPairCap } from './types.js';
2
+ export interface BridgeOpts {
3
+ /** Override ~/.yujin-forge for tests. */
4
+ root?: string;
5
+ /** Override clock for deterministic tests. */
6
+ now?: () => number;
7
+ /** Slice 1 of N-projects sprint -- bridge sharding. When set,
8
+ * reads/writes `bridge/bridge-{project_slug}.json` instead of
9
+ * the global `bridge/bridge.json`. Defaults to 'self' so the
10
+ * legacy filename (bridge.json) is preserved byte-for-byte
11
+ * whenever no project is specified. */
12
+ project_slug?: string;
13
+ }
14
+ /** List every shard file present under <root>/bridge. Returns
15
+ * pairs {project_slug, file}. Used by Activity / scan endpoints
16
+ * to read across all projects without knowing the slug list. */
17
+ export declare function listBridgeShards(opts?: BridgeOpts): Promise<Array<{
18
+ project_slug: string;
19
+ file: string;
20
+ }>>;
21
+ export type BridgeErrorCode = 'invalid_slug' | 'sender_not_found' | 'receiver_not_found' | 'acl_denied' | 'token_cap_reached' | 'pair_frozen' | 'pair_auto_revoked';
22
+ export declare class BridgeError extends Error {
23
+ code: BridgeErrorCode;
24
+ constructor(code: BridgeErrorCode, message: string);
25
+ }
26
+ export interface SendMessageInput {
27
+ from_slug: string;
28
+ to_slug: string;
29
+ payload: unknown;
30
+ /** Tokens to charge against the pair cap. Caller estimates +
31
+ * the bridge subtracts before persisting. */
32
+ tokens_used: number;
33
+ /** Slice 1 N-projects sprint -- which project this message
34
+ * belongs to. Defaults to 'self' (legacy single-project mode).
35
+ * Drives shard file selection + persists on the message row
36
+ * for downstream filtering. */
37
+ project_slug?: string;
38
+ }
39
+ export interface SendMessageResult {
40
+ message: AgentMessage;
41
+ pair_state: AgentPairCap;
42
+ }
43
+ /** Send a message from one agent to another. Runs ACL +
44
+ * pair-cap + loop-detector checks. Throws BridgeError when a
45
+ * gate trips. The caller -- usually agents/runner.ts during a
46
+ * run -- catches and surfaces a graceful failure to the brain. */
47
+ export declare function sendMessage(input: SendMessageInput, opts?: BridgeOpts): Promise<SendMessageResult>;
48
+ export interface DrainResult {
49
+ drained: AgentMessage[];
50
+ expired_skipped: number;
51
+ }
52
+ /** Pull pending messages for the given agent. Caps the batch at
53
+ * agent.bridge.inbox_drain_batch. Marks every returned message
54
+ * delivered_at = now. Expired messages are skipped + counted. */
55
+ export declare function drainInbox(slug: string, opts?: BridgeOpts): Promise<DrainResult>;
56
+ /** Mark a delivered message as read (the receiver processed it). */
57
+ export declare function markRead(messageId: number, opts?: BridgeOpts): Promise<boolean>;
58
+ /** Inspect pair-level state (cap window + loop detector + status). */
59
+ export declare function pairState(a: string, b: string, opts?: BridgeOpts): Promise<AgentPairCap | null>;
60
+ /** Manually re-enable a pair that was auto-revoked. Resets the
61
+ * loop counter + token window so the next send starts clean.
62
+ * Returns false when the pair has no state yet. */
63
+ export declare function reEnablePair(a: string, b: string, opts?: BridgeOpts): Promise<boolean>;
64
+ /** List ALL messages (debug / panel "audit" view). */
65
+ export declare function listAllMessages(opts?: BridgeOpts): Promise<AgentMessage[]>;
66
+ /** Test helper: wipe the bridge file. NOT exported in package
67
+ * index -- only tests import from this file directly. */
68
+ export declare function _resetBridgeForTests(opts?: BridgeOpts): Promise<void>;
69
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/agents/bridge.ts"],"names":[],"mappings":"AAqBA,OAAO,EAEL,KAAK,YAAY,EAA2B,KAAK,YAAY,EAC9D,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;;4CAIwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA+BD;;iEAEiE;AACjE,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAehH;AAmBD,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,kBAAkB,GAClB,oBAAoB,GACpB,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,mBAAmB,CAAC;AAExB,qBAAa,WAAY,SAAQ,KAAK;IACjB,IAAI,EAAE,eAAe;gBAArB,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAI1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB;kDAC8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB;;;oCAGgC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,YAAY,CAAC;CAC1B;AAED;;;mEAGmE;AACnE,wBAAsB,WAAW,CAC/B,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,UAAU,GACzC,OAAO,CAAC,iBAAiB,CAAC,CA6H5B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;kEAEkE;AAClE,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAC9B,OAAO,CAAC,WAAW,CAAC,CA0BtB;AAED,oEAAoE;AACpE,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GACnC,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,sEAAsE;AACtE,wBAAsB,SAAS,CAC7B,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GACtC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAI9B;AAED;;oDAEoD;AACpD,wBAAsB,YAAY,CAChC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GACtC,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED,sDAAsD;AACtD,wBAAsB,eAAe,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAGhF;AAED;0DAC0D;AAC1D,wBAAsB,oBAAoB,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAI3E"}
@@ -0,0 +1,295 @@
1
+ /**
2
+ * Inter-agent bridge (Director sprint slice 2).
3
+ *
4
+ * Local-only persistence per D3 decision (see
5
+ * docs/DIRECTOR_DECISIONS_2026_06_04.md): a single JSON file at
6
+ * `~/.yujin-forge/bridge/bridge.json` holds the message log +
7
+ * pair-level cap state. SQLite was specced originally but JSON
8
+ * has zero native-dep cost (no better-sqlite3 compile per arch)
9
+ * and is plenty for a single-process Node runtime.
10
+ *
11
+ * Read-modify-write is atomic via tmp+rename. Single-process,
12
+ * no concurrent writers expected (`yf chat` is one process).
13
+ *
14
+ * Every cap / window / TTL is read from getAgentConfig(...).
15
+ * Zero hardcoded numbers per the D2 lock.
16
+ *
17
+ * ASCII-only.
18
+ */
19
+ import { promises as fs } from 'node:fs';
20
+ import path from 'node:path';
21
+ import os from 'node:os';
22
+ import { pairIdFor, isValidAgentSlug, } from './types.js';
23
+ import { getAgentConfig } from './config_resolver.js';
24
+ import { getAgentDefinition } from './store.js';
25
+ const EMPTY_BRIDGE = {
26
+ version: 1,
27
+ next_message_id: 1,
28
+ messages: [],
29
+ pair_state: {},
30
+ };
31
+ function defaultRoot() {
32
+ const home = process.env.HOME || process.env.USERPROFILE || os.homedir();
33
+ return path.join(home, '.yujin-forge');
34
+ }
35
+ function bridgeFile(opts) {
36
+ const root = opts?.root ?? defaultRoot();
37
+ /* Sharding by project_slug. 'self' (default) maps to the legacy
38
+ * filename so existing deployments + tests keep working byte-for-
39
+ * byte; explicit projects shard into bridge-{slug}.json. */
40
+ const project = opts?.project_slug || 'self';
41
+ const filename = project === 'self' ? 'bridge.json' : 'bridge-' + project + '.json';
42
+ return path.join(root, 'bridge', filename);
43
+ }
44
+ /** List every shard file present under <root>/bridge. Returns
45
+ * pairs {project_slug, file}. Used by Activity / scan endpoints
46
+ * to read across all projects without knowing the slug list. */
47
+ export async function listBridgeShards(opts) {
48
+ const root = opts?.root ?? defaultRoot();
49
+ const dir = path.join(root, 'bridge');
50
+ const out = [];
51
+ try {
52
+ const names = await fs.readdir(dir);
53
+ for (const n of names) {
54
+ if (n === 'bridge.json')
55
+ out.push({ project_slug: 'self', file: path.join(dir, n) });
56
+ else if (n.startsWith('bridge-') && n.endsWith('.json')) {
57
+ const slug = n.slice('bridge-'.length, n.length - '.json'.length);
58
+ if (slug)
59
+ out.push({ project_slug: slug, file: path.join(dir, n) });
60
+ }
61
+ }
62
+ }
63
+ catch { /* dir absent -- ok, no shards */ }
64
+ return out;
65
+ }
66
+ async function readBridge(opts) {
67
+ try {
68
+ const raw = await fs.readFile(bridgeFile(opts), 'utf-8');
69
+ const parsed = JSON.parse(raw);
70
+ if (parsed && parsed.version === 1)
71
+ return parsed;
72
+ }
73
+ catch { /* missing or malformed -- start fresh */ }
74
+ return { ...EMPTY_BRIDGE, messages: [], pair_state: {} };
75
+ }
76
+ async function writeBridge(b, opts) {
77
+ const file = bridgeFile(opts);
78
+ await fs.mkdir(path.dirname(file), { recursive: true });
79
+ const tmp = file + '.tmp';
80
+ await fs.writeFile(tmp, JSON.stringify(b, null, 2), 'utf-8');
81
+ await fs.rename(tmp, file);
82
+ }
83
+ export class BridgeError extends Error {
84
+ code;
85
+ constructor(code, message) {
86
+ super(message);
87
+ this.code = code;
88
+ this.name = 'BridgeError';
89
+ }
90
+ }
91
+ /** Send a message from one agent to another. Runs ACL +
92
+ * pair-cap + loop-detector checks. Throws BridgeError when a
93
+ * gate trips. The caller -- usually agents/runner.ts during a
94
+ * run -- catches and surfaces a graceful failure to the brain. */
95
+ export async function sendMessage(input, opts) {
96
+ const now = (opts?.now ?? Date.now)();
97
+ /* Caller may pass project_slug on the input OR opts; the input
98
+ * wins for the message row (it's what the agent declared) and
99
+ * the opts is what selects the shard file. We unify them so a
100
+ * caller can pass it once on either side. */
101
+ const effectiveProject = input.project_slug || opts?.project_slug || 'self';
102
+ const bridgeOpts = { ...opts, project_slug: effectiveProject };
103
+ if (!isValidAgentSlug(input.from_slug)) {
104
+ throw new BridgeError('invalid_slug', 'from_slug is not a valid agent slug');
105
+ }
106
+ if (!isValidAgentSlug(input.to_slug)) {
107
+ throw new BridgeError('invalid_slug', 'to_slug is not a valid agent slug');
108
+ }
109
+ if (input.from_slug === input.to_slug) {
110
+ throw new BridgeError('acl_denied', 'an agent cannot message itself');
111
+ }
112
+ const root = opts?.root;
113
+ const fromDef = await getAgentDefinition(input.from_slug, root ? { root } : undefined);
114
+ if (!fromDef) {
115
+ throw new BridgeError('sender_not_found', 'from_slug "' + input.from_slug + '" not registered');
116
+ }
117
+ const toDef = await getAgentDefinition(input.to_slug, root ? { root } : undefined);
118
+ if (!toDef) {
119
+ throw new BridgeError('receiver_not_found', 'to_slug "' + input.to_slug + '" not registered');
120
+ }
121
+ /* Two-sided ACL handshake:
122
+ * from.can_call must include to (or '*')
123
+ * to.can_be_called_by must include from (or '*') */
124
+ const fromAllowsTo = fromDef.can_call.includes('*') ||
125
+ fromDef.can_call.includes(input.to_slug);
126
+ const toAcceptsFrom = toDef.can_be_called_by.includes('*') ||
127
+ toDef.can_be_called_by.includes(input.from_slug);
128
+ if (!fromAllowsTo || !toAcceptsFrom) {
129
+ throw new BridgeError('acl_denied', 'ACL: ' + input.from_slug + ' -> ' + input.to_slug + ' is not whitelisted on both ends');
130
+ }
131
+ /* Pair cap + loop detector. */
132
+ const pairId = pairIdFor(input.from_slug, input.to_slug);
133
+ const b = await readBridge(bridgeOpts);
134
+ const tokenCap = await getAgentConfig('agent.bridge.tokens_per_pair_hourly');
135
+ const rtWindowSeconds = await getAgentConfig('agent.bridge.round_trips_window_seconds');
136
+ const rtMax = await getAgentConfig('agent.bridge.round_trips_max');
137
+ const ttlSeconds = await getAgentConfig('agent.bridge.message_ttl_seconds');
138
+ const existing = b.pair_state[pairId];
139
+ /* Reset rolling 1h cap window when expired. */
140
+ const windowMs = 60 * 60 * 1000;
141
+ const rtWindowMs = rtWindowSeconds * 1000;
142
+ const fresh = existing
143
+ ? { ...existing }
144
+ : {
145
+ pair_id: pairId,
146
+ tokens_used_window: 0,
147
+ window_started_at: now,
148
+ round_trips_60s: 0,
149
+ last_round_trip_at: 0,
150
+ status: 'open',
151
+ };
152
+ if (fresh.status === 'auto_revoked') {
153
+ throw new BridgeError('pair_auto_revoked', 'pair ' + pairId + ' auto-revoked; manual re-enable required');
154
+ }
155
+ if (now - fresh.window_started_at > windowMs) {
156
+ fresh.tokens_used_window = 0;
157
+ fresh.window_started_at = now;
158
+ fresh.status = 'open';
159
+ }
160
+ if (fresh.tokens_used_window + input.tokens_used > tokenCap) {
161
+ fresh.status = 'frozen';
162
+ b.pair_state[pairId] = fresh;
163
+ await writeBridge(b, bridgeOpts);
164
+ throw new BridgeError('token_cap_reached', 'pair ' + pairId + ' hit token cap (' + tokenCap + ') in current 1h window');
165
+ }
166
+ /* Round-trip loop check: a round trip is from->to followed by
167
+ * to->from inside the window. We count direction flips by
168
+ * peeking at the most recent message on this pair. */
169
+ const lastOnPair = [...b.messages].reverse().find((m) => m.pair_id === pairId);
170
+ if (lastOnPair && lastOnPair.to_slug === input.from_slug) {
171
+ /* A reply to the previous message = one round trip. */
172
+ if (now - fresh.last_round_trip_at <= rtWindowMs) {
173
+ fresh.round_trips_60s += 1;
174
+ }
175
+ else {
176
+ fresh.round_trips_60s = 1;
177
+ }
178
+ fresh.last_round_trip_at = now;
179
+ if (fresh.round_trips_60s >= rtMax) {
180
+ fresh.status = 'auto_revoked';
181
+ b.pair_state[pairId] = fresh;
182
+ await writeBridge(b, bridgeOpts);
183
+ throw new BridgeError('pair_auto_revoked', 'pair ' + pairId + ' tripped loop detector ('
184
+ + fresh.round_trips_60s + ' round trips in '
185
+ + rtWindowSeconds + 's window). Auto-revoked.');
186
+ }
187
+ }
188
+ /* All checks passed. Append the message + update pair state. */
189
+ fresh.tokens_used_window += input.tokens_used;
190
+ const msg = {
191
+ id: b.next_message_id,
192
+ pair_id: pairId,
193
+ from_slug: input.from_slug,
194
+ to_slug: input.to_slug,
195
+ payload: input.payload,
196
+ tokens_used: input.tokens_used,
197
+ status: 'pending',
198
+ created_at: now,
199
+ expires_at: now + ttlSeconds * 1000,
200
+ project_slug: effectiveProject,
201
+ };
202
+ b.next_message_id += 1;
203
+ b.messages.push(msg);
204
+ b.pair_state[pairId] = fresh;
205
+ await writeBridge(b, bridgeOpts);
206
+ return { message: msg, pair_state: fresh };
207
+ }
208
+ /** Pull pending messages for the given agent. Caps the batch at
209
+ * agent.bridge.inbox_drain_batch. Marks every returned message
210
+ * delivered_at = now. Expired messages are skipped + counted. */
211
+ export async function drainInbox(slug, opts) {
212
+ if (!isValidAgentSlug(slug)) {
213
+ throw new BridgeError('invalid_slug', 'invalid slug');
214
+ }
215
+ const now = (opts?.now ?? Date.now)();
216
+ const batchLimit = await getAgentConfig('agent.bridge.inbox_drain_batch');
217
+ const b = await readBridge(opts);
218
+ const drained = [];
219
+ let expired_skipped = 0;
220
+ for (const m of b.messages) {
221
+ if (m.to_slug !== slug)
222
+ continue;
223
+ if (m.status !== 'pending')
224
+ continue;
225
+ if (m.expires_at <= now) {
226
+ m.status = 'expired';
227
+ expired_skipped += 1;
228
+ continue;
229
+ }
230
+ if (drained.length >= batchLimit)
231
+ break;
232
+ m.status = 'delivered';
233
+ m.delivered_at = now;
234
+ drained.push(m);
235
+ }
236
+ if (drained.length > 0 || expired_skipped > 0) {
237
+ await writeBridge(b, opts);
238
+ }
239
+ return { drained, expired_skipped };
240
+ }
241
+ /** Mark a delivered message as read (the receiver processed it). */
242
+ export async function markRead(messageId, opts) {
243
+ const now = (opts?.now ?? Date.now)();
244
+ const b = await readBridge(opts);
245
+ const m = b.messages.find((x) => x.id === messageId);
246
+ if (!m)
247
+ return false;
248
+ if (m.status !== 'delivered' && m.status !== 'pending')
249
+ return false;
250
+ m.status = 'read';
251
+ m.read_at = now;
252
+ await writeBridge(b, opts);
253
+ return true;
254
+ }
255
+ /** Inspect pair-level state (cap window + loop detector + status). */
256
+ export async function pairState(a, b, opts) {
257
+ const pid = pairIdFor(a, b);
258
+ const file = await readBridge(opts);
259
+ return file.pair_state[pid] ?? null;
260
+ }
261
+ /** Manually re-enable a pair that was auto-revoked. Resets the
262
+ * loop counter + token window so the next send starts clean.
263
+ * Returns false when the pair has no state yet. */
264
+ export async function reEnablePair(a, b, opts) {
265
+ const pid = pairIdFor(a, b);
266
+ const now = (opts?.now ?? Date.now)();
267
+ const file = await readBridge(opts);
268
+ const existing = file.pair_state[pid];
269
+ if (!existing)
270
+ return false;
271
+ file.pair_state[pid] = {
272
+ pair_id: pid,
273
+ tokens_used_window: 0,
274
+ window_started_at: now,
275
+ round_trips_60s: 0,
276
+ last_round_trip_at: 0,
277
+ status: 'open',
278
+ };
279
+ await writeBridge(file, opts);
280
+ return true;
281
+ }
282
+ /** List ALL messages (debug / panel "audit" view). */
283
+ export async function listAllMessages(opts) {
284
+ const b = await readBridge(opts);
285
+ return b.messages.slice();
286
+ }
287
+ /** Test helper: wipe the bridge file. NOT exported in package
288
+ * index -- only tests import from this file directly. */
289
+ export async function _resetBridgeForTests(opts) {
290
+ try {
291
+ await fs.rm(bridgeFile(opts), { force: true });
292
+ }
293
+ catch { /* ignore */ }
294
+ }
295
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/agents/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `yf agent run --real` helper (Director closure pendiente 1).
3
+ *
4
+ * Resolves the production wiring (Claude client + runtime +
5
+ * factory) so the CLI subcommand stays thin + tests can inject
6
+ * fakes for any of them.
7
+ *
8
+ * ASCII-only.
9
+ */
10
+ import type { AgentDefinition } from './types.js';
11
+ import type { StepFn } from './runner.js';
12
+ import type { Runtime } from './runtime.js';
13
+ import { ClaudeClient } from '../chat/claude.js';
14
+ interface MakeRealStepOpts {
15
+ def: AgentDefinition;
16
+ trigger_reason: string;
17
+ project_root: string;
18
+ project_name: string;
19
+ forge_version: string;
20
+ /** Inject a different Claude client (tests). When unset, the
21
+ * real ClaudeClient is constructed from the vault. */
22
+ claude?: ConstructorParameters<typeof ClaudeClient>[0] extends infer P ? P extends void | undefined ? import('../chat/claude.js').ClaudeClient : import('../chat/claude.js').ClaudeClient : import('../chat/claude.js').ClaudeClient;
23
+ runtime?: Runtime;
24
+ /** Where the bridge persists. Tests pass tmp; production lets
25
+ * it resolve to ~/.yujin-forge/bridge. */
26
+ bridge_root?: string;
27
+ }
28
+ export interface CliRealError extends Error {
29
+ code: 'no_claude_key' | 'unknown';
30
+ }
31
+ /**
32
+ * Build the live StepFn the runner will execute. Returns the
33
+ * StepFn directly; the caller (the CLI subcommand) wraps it with
34
+ * `runAgent(def, {step, ...})`.
35
+ */
36
+ export declare function makeRealStep(opts: MakeRealStepOpts): Promise<StepFn>;
37
+ export {};
38
+ //# sourceMappingURL=cli_real.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli_real.d.ts","sourceRoot":"","sources":["../../src/agents/cli_real.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,YAAY,EAAsB,MAAM,mBAAmB,CAAC;AAErE,UAAU,gBAAgB;IACxB,GAAG,EAAc,eAAe,CAAC;IACjC,cAAc,EAAG,MAAM,CAAC;IACxB,YAAY,EAAK,MAAM,CAAC;IACxB,YAAY,EAAK,MAAM,CAAC;IACxB,aAAa,EAAI,MAAM,CAAC;IACxB;2DACuD;IACvD,MAAM,CAAC,EAAU,qBAAqB,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GAC1E,CAAC,SAAS,IAAI,GAAG,SAAS,GACxB,OAAO,mBAAmB,EAAE,YAAY,GACxC,OAAO,mBAAmB,EAAE,YAAY,GAC1C,OAAO,mBAAmB,EAAE,YAAY,CAAC;IAC7C,OAAO,CAAC,EAAS,OAAO,CAAC;IACzB;+CAC2C;IAC3C,WAAW,CAAC,EAAK,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IAAG,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;CAAE;AAElF;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuC1E"}
@@ -0,0 +1,46 @@
1
+ import { buildAgentStepFactory } from './real_step_factory.js';
2
+ import { runNac3Invoke } from '../chat/tools/nac3_invoke.js';
3
+ import { runForgeTool } from '../chat/tools.js';
4
+ import { ClaudeClient, ConfigurationError } from '../chat/claude.js';
5
+ /**
6
+ * Build the live StepFn the runner will execute. Returns the
7
+ * StepFn directly; the caller (the CLI subcommand) wraps it with
8
+ * `runAgent(def, {step, ...})`.
9
+ */
10
+ export async function makeRealStep(opts) {
11
+ let claude = opts.claude;
12
+ if (!claude) {
13
+ try {
14
+ claude = new ClaudeClient();
15
+ }
16
+ catch (err) {
17
+ if (err instanceof ConfigurationError) {
18
+ const e = new Error('No Claude API key available. Set anthropic_api_key in the vault '
19
+ + '(`yf keys setup --provider anthropic --key <KEY>`) or pass a '
20
+ + 'tenant license via `yf license activate`.');
21
+ e.code = 'no_claude_key';
22
+ throw e;
23
+ }
24
+ const e = new Error('Failed to instantiate Claude client: '
25
+ + (err instanceof Error ? err.message : String(err)));
26
+ e.code = 'unknown';
27
+ throw e;
28
+ }
29
+ }
30
+ const factory = buildAgentStepFactory({
31
+ claude,
32
+ runNac3Invoke: runNac3Invoke,
33
+ project_root: opts.project_root,
34
+ project_name: opts.project_name,
35
+ forge_version: opts.forge_version,
36
+ runtime: opts.runtime,
37
+ bridge_root: opts.bridge_root,
38
+ /* legacy_run wires the original Forge tool dispatcher so the
39
+ * agent verbs that route through legacy handlers (git, fs,
40
+ * pizarron, etc) keep working as before. */
41
+ legacy_run: runForgeTool,
42
+ nac3_ctx: { projectRoot: opts.project_root },
43
+ });
44
+ return factory(opts.def, opts.trigger_reason);
45
+ }
46
+ //# sourceMappingURL=cli_real.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli_real.js","sourceRoot":"","sources":["../../src/agents/cli_real.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAuBrE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAsB;IACvD,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,IAAI,KAAK,CACjB,kEAAkE;sBAChE,+DAA+D;sBAC/D,2CAA2C,CAC9B,CAAC;gBAClB,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC;gBACzB,MAAM,CAAC,CAAC;YACV,CAAC;YACD,MAAM,CAAC,GAAG,IAAI,KAAK,CACjB,uCAAuC;kBACrC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CACrC,CAAC;YAClB,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC;YACnB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACpC,MAAM;QACN,aAAa,EAAE,aAAsB;QACrC,YAAY,EAAG,IAAI,CAAC,YAAY;QAChC,YAAY,EAAG,IAAI,CAAC,YAAY;QAChC,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,OAAO,EAAQ,IAAI,CAAC,OAAO;QAC3B,WAAW,EAAI,IAAI,CAAC,WAAW;QAC/B;;oDAE4C;QAC5C,UAAU,EAAK,YAAY;QAC3B,QAAQ,EAAO,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE;KAClD,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAChD,CAAC"}
@@ -20,7 +20,7 @@
20
20
  * Changes to defaults ship as a config-file edit, not a code
21
21
  * change in src/agents/*.ts.
22
22
  */
23
- export type AgentConfigKey = 'agent.bridge.tokens_per_pair_hourly' | 'agent.bridge.round_trips_window_seconds' | 'agent.bridge.round_trips_max' | 'agent.bridge.message_ttl_seconds' | 'agent.bridge.inbox_drain_batch' | 'agent.runtime.max_consecutive_rejected_approvals' | 'agent.runtime.run_timeout_seconds' | 'agent.cron.missed_runs_warning_threshold' | 'agent.audit.retention_days' | 'agent.deletion.grace_period_days' | 'agent.web_search.provider' | 'agent.web_search.daily_query_cap';
23
+ export type AgentConfigKey = 'agent.bridge.tokens_per_pair_hourly' | 'agent.bridge.round_trips_window_seconds' | 'agent.bridge.round_trips_max' | 'agent.bridge.message_ttl_seconds' | 'agent.bridge.inbox_drain_batch' | 'agent.runtime.max_consecutive_rejected_approvals' | 'agent.runtime.run_timeout_seconds' | 'agent.runtime.max_concurrent_runs_global' | 'agent.runtime.max_concurrent_runs_per_project' | 'agent.cron.missed_runs_warning_threshold' | 'agent.audit.retention_days' | 'agent.deletion.grace_period_days' | 'agent.web_search.provider' | 'agent.web_search.daily_query_cap';
24
24
  export type AgentConfigType = 'number' | 'string' | 'boolean';
25
25
  export interface AgentConfigDescriptor {
26
26
  key: AgentConfigKey;
@@ -1 +1 @@
1
- {"version":3,"file":"config_schema.d.ts","sourceRoot":"","sources":["../../src/agents/config_schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,MAAM,cAAc,GAEtB,qCAAqC,GACrC,yCAAyC,GACzC,8BAA8B,GAC9B,kCAAkC,GAClC,gCAAgC,GAEhC,kDAAkD,GAClD,mCAAmC,GAEnC,0CAA0C,GAE1C,4BAA4B,GAC5B,kCAAkC,GAElC,2BAA2B,GAC3B,kCAAkC,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAU,cAAc,CAAC;IAC5B,IAAI,EAAS,eAAe,CAAC;IAC7B,OAAO,EAAM,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,IAAI,CAAC,EAAQ,SAAS,MAAM,EAAE,CAAC;IAC/B,uCAAuC;IACvC,GAAG,CAAC,EAAS,MAAM,CAAC;IACpB,GAAG,CAAC,EAAS,MAAM,CAAC;CACrB;AAMD,eAAO,MAAM,mBAAmB,EAAE,SAAS,qBAAqB,EAgGtD,CAAC;AAWX,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,GAAG,qBAAqB,CAMnF;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAEpF;AAKD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,OAAO,GACX,MAAM,GAAG,MAAM,GAAG,OAAO,CA6B3B;AAMD,wBAAgB,uBAAuB,IAAI,MAAM,CAMhD;AAKD,wBAAgB,wBAAwB,IAAI,MAAM,CAYjD"}
1
+ {"version":3,"file":"config_schema.d.ts","sourceRoot":"","sources":["../../src/agents/config_schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,MAAM,cAAc,GAEtB,qCAAqC,GACrC,yCAAyC,GACzC,8BAA8B,GAC9B,kCAAkC,GAClC,gCAAgC,GAGhC,kDAAkD,GAClD,mCAAmC,GACnC,0CAA0C,GAC1C,+CAA+C,GAE/C,0CAA0C,GAE1C,4BAA4B,GAC5B,kCAAkC,GAElC,2BAA2B,GAC3B,kCAAkC,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAU,cAAc,CAAC;IAC5B,IAAI,EAAS,eAAe,CAAC;IAC7B,OAAO,EAAM,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,IAAI,CAAC,EAAQ,SAAS,MAAM,EAAE,CAAC;IAC/B,uCAAuC;IACvC,GAAG,CAAC,EAAS,MAAM,CAAC;IACpB,GAAG,CAAC,EAAS,MAAM,CAAC;CACrB;AAMD,eAAO,MAAM,mBAAmB,EAAE,SAAS,qBAAqB,EAgHtD,CAAC;AAWX,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,cAAc,GAAG,qBAAqB,CAMnF;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAEpF;AAKD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,OAAO,GACX,MAAM,GAAG,MAAM,GAAG,OAAO,CA6B3B;AAMD,wBAAgB,uBAAuB,IAAI,MAAM,CAMhD;AAKD,wBAAgB,wBAAwB,IAAI,MAAM,CAYjD"}
@@ -81,6 +81,22 @@ export const AGENT_CONFIG_SCHEMA = [
81
81
  min: 10,
82
82
  max: 86_400,
83
83
  },
84
+ {
85
+ key: 'agent.runtime.max_concurrent_runs_global',
86
+ type: 'number',
87
+ default: 6,
88
+ description: 'Total concurrent agent runs across every project. Once reached, new dispatches block until a slot frees up. Default tuned for a notebook running on a Tier 1 Anthropic key (50 RPM). EC2 deployments should set this to 20-50 via `yf limits set agent.runtime.max_concurrent_runs_global N`.',
89
+ min: 1,
90
+ max: 200,
91
+ },
92
+ {
93
+ key: 'agent.runtime.max_concurrent_runs_per_project',
94
+ type: 'number',
95
+ default: 2,
96
+ description: 'Concurrent agent runs per project_slug. Prevents one busy project from starving others. The Director itself counts as one slot, so default=2 means Director + one delegated worker. Lift to 4-5 once you have a paid Anthropic plan.',
97
+ min: 1,
98
+ max: 100,
99
+ },
84
100
  {
85
101
  key: 'agent.cron.missed_runs_warning_threshold',
86
102
  type: 'number',
@@ -1 +1 @@
1
- {"version":3,"file":"config_schema.js","sourceRoot":"","sources":["../../src/agents/config_schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config_schema.js","sourceRoot":"","sources":["../../src/agents/config_schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/agents/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,eAAO,MAAM,4BAA4B,EAAE,eA6B1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,eA+B9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,eAAe,EAGpD,CAAC"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/agents/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,eAAO,MAAM,4BAA4B,EAAE,eA6B1C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,eA+B9B,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,SAAS,eAAe,EAGpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/agents/defaults.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,4BAA4B,GAAoB,yBAAyB,CACpF,8BAA8B,EAC9B,8BAA8B,EAC9B;IACE,WAAW,EACT,qFAAqF;IACvF,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE;QACP,IAAI,EAAI,MAAM;QACd,MAAM,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAG,qCAAqC;KAC3E;IACD,QAAQ,EAAE,EAAE;IACZ,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE;QACb,4DAA4D;QAC5D,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,uBAAuB;QACvB,eAAe;QACf,kBAAkB,EAAG,gDAAgD;KACtE;IACD,eAAe,EACb,qEAAqE;UACnE,oEAAoE;UACpE,kEAAkE;UAClE,sEAAsE;IAC1E,MAAM,EAAE,QAAQ;CACjB,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAoB,yBAAyB,CACxE,YAAY,EACZ,qBAAqB,EACrB;IACE,WAAW,EACT,uHAAuH;IACzH,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE;QACP,IAAI,EAAI,QAAQ,EAAG,kDAAkD;QACrE,MAAM,EAAE,EAAE;KACX;IACD,QAAQ,EAAE,EAAE;IACZ;kDAC8C;IAC9C,gBAAgB,EAAE,CAAC,GAAG,CAAC;IACvB,aAAa,EAAE;QACb;gCACwB;QACxB,sBAAsB;QACtB,kBAAkB;QAClB,iBAAiB;KAClB;IACD,eAAe,EACb,uEAAuE;UACrE,0DAA0D;UAC1D,qEAAqE;UACrE,kEAAkE;UAClE,+CAA+C;UAC/C,sCAAsC;IAC1C,MAAM,EAAE,QAAQ;CACjB,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA+B;IACxD,4BAA4B;IAC5B,gBAAgB;CACjB,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/agents/defaults.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,CAAC,MAAM,4BAA4B,GAAoB,yBAAyB,CACpF,8BAA8B,EAC9B,8BAA8B,EAC9B;IACE,WAAW,EACT,qFAAqF;IACvF,UAAU,EAAE,KAAK;IACjB,OAAO,EAAE;QACP,IAAI,EAAI,MAAM;QACd,MAAM,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAG,qCAAqC;KAC3E;IACD,QAAQ,EAAE,EAAE;IACZ,gBAAgB,EAAE,EAAE;IACpB,aAAa,EAAE;QACb,4DAA4D;QAC5D,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,uBAAuB;QACvB,eAAe;QACf,kBAAkB,EAAG,gDAAgD;KACtE;IACD,eAAe,EACb,qEAAqE;UACnE,oEAAoE;UACpE,kEAAkE;UAClE,sEAAsE;IAC1E,MAAM,EAAE,QAAQ;CACjB,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAoB,yBAAyB,CACxE,YAAY,EACZ,qBAAqB,EACrB;IACE,WAAW,EACT,uHAAuH;IACzH,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE;QACP,IAAI,EAAI,QAAQ,EAAG,kDAAkD;QACrE,MAAM,EAAE,EAAE;KACX;IACD,QAAQ,EAAE,EAAE;IACZ;kDAC8C;IAC9C,gBAAgB,EAAE,CAAC,GAAG,CAAC;IACvB,aAAa,EAAE;QACb;gCACwB;QACxB,sBAAsB;QACtB,kBAAkB;QAClB,iBAAiB;KAClB;IACD,eAAe,EACb,uEAAuE;UACrE,0DAA0D;UAC1D,qEAAqE;UACrE,kEAAkE;UAClE,+CAA+C;UAC/C,sCAAsC;IAC1C,MAAM,EAAE,QAAQ;CACjB,CACF,CAAC;AAGF,MAAM,CAAC,MAAM,cAAc,GAA+B;IACxD,4BAA4B;IAC5B,gBAAgB;CACjB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { Runtime } from './runtime.js';
2
+ import type { AgentRunStatus } from './types.js';
3
+ export interface DelegateOpts {
4
+ from_slug: string;
5
+ to_slug: string;
6
+ payload: string;
7
+ tokens_used: number;
8
+ /** Override the bridge root for tests. */
9
+ root?: string;
10
+ /** Runtime used to dispatch the target agent + await its run.
11
+ * When undefined, the delegate just enqueues the bridge
12
+ * message + returns ok=true without a run result (fire-and-
13
+ * forget mode, used by cron-triggered flows). */
14
+ runtime?: Runtime;
15
+ }
16
+ export interface DelegateResult {
17
+ ok: boolean;
18
+ /** The slug the message was addressed to. */
19
+ target_slug: string;
20
+ /** Reason text the runtime saw -- useful for audit. */
21
+ trigger_reason?: string;
22
+ /** Status of the agent run that handled the message. Undefined
23
+ * in fire-and-forget mode (no runtime). */
24
+ run_status?: AgentRunStatus;
25
+ /** The receiver's last_reply_summary. Undefined in fire-and-
26
+ * forget mode. */
27
+ last_reply?: string;
28
+ /** Tokens consumed by the target run. Undefined in fire-and-
29
+ * forget mode. */
30
+ tokens_in?: number;
31
+ tokens_out?: number;
32
+ /** Set when ok=false. */
33
+ error?: string;
34
+ }
35
+ export declare function delegateToAgent(opts: DelegateOpts): Promise<DelegateResult>;
36
+ //# sourceMappingURL=delegate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/agents/delegate.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAI,MAAM,CAAC;IACpB,OAAO,EAAM,MAAM,CAAC;IACpB,OAAO,EAAM,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,IAAI,CAAC,EAAQ,MAAM,CAAC;IACpB;;;sDAGkD;IAClD,OAAO,CAAC,EAAK,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAY,OAAO,CAAC;IACtB,6CAA6C;IAC7C,WAAW,EAAG,MAAM,CAAC;IACrB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;gDAC4C;IAC5C,UAAU,CAAC,EAAG,cAAc,CAAC;IAC7B;uBACmB;IACnB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB;uBACmB;IACnB,SAAS,CAAC,EAAI,MAAM,CAAC;IACrB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,yBAAyB;IACzB,KAAK,CAAC,EAAQ,MAAM,CAAC;CACtB;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAoDjF"}