@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,429 @@
1
+ /**
2
+ * Agent runtime (Director sprint slice 4).
3
+ *
4
+ * Thin event-loop scheduler that lives inside `yf chat`. Walks
5
+ * the registered agents on each tick, fires due work (cron tick,
6
+ * bridge inbox drain), and exposes a typed event stream that the
7
+ * panel SSE will tap into in slice 5.
8
+ *
9
+ * Contracts:
10
+ * - createRuntime(opts) -> Runtime { start, stop, status,
11
+ * dispatchAgent, tickNow, on('event', cb) }.
12
+ * - start() / stop() are idempotent.
13
+ * - dispatchAgent(slug, reason) runs the real (or DI-injected)
14
+ * runner + returns the AgentRun row. Refuses when:
15
+ * * runtime not started
16
+ * * slug not registered
17
+ * * agent status='paused' or 'deleted' or 'auto_revoked'
18
+ * - Tick interval comes from opts.tickIntervalMs OR
19
+ * getAgentConfig('agent.runtime.tick_interval_ms') if added,
20
+ * else 5000ms default.
21
+ * - State persists to ~/.yujin-forge/runtime.json (last_tick_at).
22
+ *
23
+ * Zero LLM calls -- runner is injected for tests. Real binding
24
+ * happens in `yf chat` startup.
25
+ *
26
+ * ASCII-only.
27
+ */
28
+ import { promises as fs, readFileSync, existsSync } from 'node:fs';
29
+ import path from 'node:path';
30
+ import os from 'node:os';
31
+ import { EventEmitter } from 'node:events';
32
+ import { listAgentDefinitions, getAgentDefinition } from './store.js';
33
+ import { drainInbox } from './bridge.js';
34
+ import { getAgentConfig } from './config_resolver.js';
35
+ function defaultRoot() {
36
+ const home = process.env.HOME || process.env.USERPROFILE || os.homedir();
37
+ return path.join(home, '.yujin-forge');
38
+ }
39
+ const EMPTY_STATE = { version: 1, last_tick_at: null };
40
+ function readStateSync(root) {
41
+ try {
42
+ const file = path.join(root, 'runtime.json');
43
+ if (!existsSync(file))
44
+ return { ...EMPTY_STATE };
45
+ const raw = readFileSync(file, 'utf-8');
46
+ const parsed = JSON.parse(raw);
47
+ if (parsed && parsed.version === 1)
48
+ return parsed;
49
+ }
50
+ catch { /* missing */ }
51
+ return { ...EMPTY_STATE };
52
+ }
53
+ async function writeState(root, state) {
54
+ await fs.mkdir(root, { recursive: true });
55
+ const file = path.join(root, 'runtime.json');
56
+ const tmp = file + '.tmp';
57
+ await fs.writeFile(tmp, JSON.stringify(state, null, 2), 'utf-8');
58
+ await fs.rename(tmp, file);
59
+ }
60
+ export function createRuntime(opts = {}) {
61
+ const root = opts.root ?? defaultRoot();
62
+ const clock = opts.clock ?? Date.now;
63
+ const tickIntervalMs = clamp(typeof opts.tickIntervalMs === 'number' ? opts.tickIntervalMs : 5000, 1000, 60_000);
64
+ const emitter = new EventEmitter();
65
+ let running = false;
66
+ /* Sync-load persisted state at construction so status() is
67
+ * truthful immediately after createRuntime() -- the "restart
68
+ * reads previous tick" test depends on this. */
69
+ let lastTickAt = readStateSync(root).last_tick_at;
70
+ let pendingTimer = null;
71
+ /* Slice 2 N-projects sprint -- concurrency semaphores.
72
+ * Increment on dispatch entry, decrement on exit. Two scopes:
73
+ * - global: total runs in-flight across all projects.
74
+ * - per-project: per-slug counter. */
75
+ let globalRunning = 0;
76
+ const perProjectRunning = new Map();
77
+ /* Cached caps. Refreshed lazily on each acquire (cheap; config
78
+ * resolver has its own 5s cache). */
79
+ let cachedGlobalCap = 6;
80
+ let cachedPerProjectCap = 2;
81
+ /* Wait queue: every blocked acquire pushes a {resolve, scope}
82
+ * onto its scope's array. release() pops + resolves the oldest. */
83
+ const globalWaiters = [];
84
+ const projectWaiters = new Map();
85
+ async function refreshCaps() {
86
+ try {
87
+ cachedGlobalCap = await getAgentConfig('agent.runtime.max_concurrent_runs_global');
88
+ }
89
+ catch { /* keep last */ }
90
+ try {
91
+ cachedPerProjectCap = await getAgentConfig('agent.runtime.max_concurrent_runs_per_project');
92
+ }
93
+ catch { /* keep last */ }
94
+ }
95
+ async function acquireSlot(slug, project_slug) {
96
+ await refreshCaps();
97
+ /* Global gate */
98
+ while (globalRunning >= cachedGlobalCap) {
99
+ emit({
100
+ kind: 'agent_run_throttled',
101
+ slug, project_slug,
102
+ scope: 'global',
103
+ running: globalRunning, cap: cachedGlobalCap,
104
+ at: clock(),
105
+ });
106
+ await new Promise((resolve) => globalWaiters.push(resolve));
107
+ await refreshCaps();
108
+ }
109
+ /* Per-project gate */
110
+ while ((perProjectRunning.get(project_slug) ?? 0) >= cachedPerProjectCap) {
111
+ const cur = perProjectRunning.get(project_slug) ?? 0;
112
+ emit({
113
+ kind: 'agent_run_throttled',
114
+ slug, project_slug,
115
+ scope: 'per_project',
116
+ running: cur, cap: cachedPerProjectCap,
117
+ at: clock(),
118
+ });
119
+ let waiters = projectWaiters.get(project_slug);
120
+ if (!waiters) {
121
+ waiters = [];
122
+ projectWaiters.set(project_slug, waiters);
123
+ }
124
+ const local = waiters;
125
+ await new Promise((resolve) => local.push(resolve));
126
+ await refreshCaps();
127
+ }
128
+ globalRunning++;
129
+ perProjectRunning.set(project_slug, (perProjectRunning.get(project_slug) ?? 0) + 1);
130
+ }
131
+ function releaseSlot(project_slug) {
132
+ globalRunning = Math.max(0, globalRunning - 1);
133
+ const cur = perProjectRunning.get(project_slug) ?? 0;
134
+ if (cur <= 1)
135
+ perProjectRunning.delete(project_slug);
136
+ else
137
+ perProjectRunning.set(project_slug, cur - 1);
138
+ /* Wake waiters fairly. Per-project first (more likely to
139
+ * unblock something useful) then global. */
140
+ const pw = projectWaiters.get(project_slug);
141
+ if (pw && pw.length > 0) {
142
+ const next = pw.shift();
143
+ if (pw.length === 0)
144
+ projectWaiters.delete(project_slug);
145
+ next();
146
+ }
147
+ if (globalWaiters.length > 0) {
148
+ const next = globalWaiters.shift();
149
+ next();
150
+ }
151
+ }
152
+ async function resolveRunner() {
153
+ if (opts.runner)
154
+ return opts.runner;
155
+ /* Lazy import to avoid circular + to allow tests to skip
156
+ * pulling Anthropic deps. */
157
+ const mod = await import('./runner.js');
158
+ /* Adapt the real runner shape to our (slug, reason) -> AgentRun
159
+ * contract. The real runner.ts exports `runAgent` with a wider
160
+ * signature; we adapt minimally. */
161
+ return async (slug, trigger_reason, opts) => {
162
+ if (typeof mod.runAgent === 'function') {
163
+ const run = await mod.runAgent;
164
+ return run(slug, trigger_reason, opts);
165
+ }
166
+ throw new Error('agents/runner.ts has no runAgent export');
167
+ };
168
+ }
169
+ function emit(e) {
170
+ emitter.emit('event', e);
171
+ }
172
+ async function persistState() {
173
+ await writeState(root, { version: 1, last_tick_at: lastTickAt });
174
+ }
175
+ async function tickNow() {
176
+ const now = clock();
177
+ lastTickAt = now;
178
+ emit({ kind: 'tick', at: now });
179
+ /* Drain inbox of every registered active agent. The runtime
180
+ * does not (yet) auto-dispatch the runner on drain; it emits
181
+ * the event so the panel / future Director can react. */
182
+ const defs = await listAgentDefinitions({ root });
183
+ for (const def of defs) {
184
+ if (def.status !== 'active')
185
+ continue;
186
+ try {
187
+ const r = await drainInbox(def.slug, { root, now: clock });
188
+ if (r.drained.length > 0) {
189
+ emit({
190
+ kind: 'bridge_drain',
191
+ slug: def.slug,
192
+ message_count: r.drained.length,
193
+ at: now,
194
+ });
195
+ }
196
+ }
197
+ catch { /* unregistered slugs throw -- ignore */ }
198
+ }
199
+ await persistState();
200
+ }
201
+ function scheduleTick() {
202
+ if (!running)
203
+ return;
204
+ pendingTimer = setTimeout(() => {
205
+ pendingTimer = null;
206
+ tickNow().catch(() => { })
207
+ .finally(() => scheduleTick());
208
+ }, tickIntervalMs);
209
+ /* Unref so a stray runtime does not block Node exit (tests). */
210
+ if (pendingTimer && typeof pendingTimer.unref === 'function') {
211
+ pendingTimer.unref();
212
+ }
213
+ }
214
+ function start() {
215
+ if (running)
216
+ return;
217
+ running = true;
218
+ scheduleTick();
219
+ }
220
+ async function stop() {
221
+ if (!running)
222
+ return;
223
+ running = false;
224
+ if (pendingTimer) {
225
+ clearTimeout(pendingTimer);
226
+ pendingTimer = null;
227
+ }
228
+ /* Flush any in-flight state. */
229
+ await persistState();
230
+ }
231
+ async function dispatchAgent(slug, trigger_reason, opts) {
232
+ if (!running) {
233
+ throw new Error('runtime not started -- call start() first');
234
+ }
235
+ const def = await getAgentDefinition(slug, { root });
236
+ if (!def) {
237
+ throw new Error('agent "' + slug + '" not registered');
238
+ }
239
+ /* Slice 1 of N-projects sprint -- default to 'self' so legacy
240
+ * single-project callers keep their behaviour. */
241
+ const project_slug = opts?.project_slug || 'self';
242
+ if (def.status !== 'active') {
243
+ emit({
244
+ kind: 'agent_run_skipped',
245
+ slug,
246
+ reason: 'agent status=' + def.status,
247
+ at: clock(),
248
+ project_slug,
249
+ });
250
+ throw new Error('agent "' + slug + '" is ' + def.status + ' -- not dispatched');
251
+ }
252
+ /* Slice 2 -- gate on global + per-project semaphores. */
253
+ await acquireSlot(slug, project_slug);
254
+ let run;
255
+ try {
256
+ emit({
257
+ kind: 'agent_run_started',
258
+ slug,
259
+ trigger_reason,
260
+ at: clock(),
261
+ project_slug,
262
+ });
263
+ const runner = await resolveRunner();
264
+ try {
265
+ run = await runner(slug, trigger_reason, { project_slug });
266
+ }
267
+ catch (err) {
268
+ emit({
269
+ kind: 'agent_run_finished',
270
+ slug,
271
+ run_id: 'run-error',
272
+ status: 'failed',
273
+ at: clock(),
274
+ project_slug,
275
+ });
276
+ throw err;
277
+ }
278
+ /* Make sure the AgentRun carries project_slug for downstream
279
+ * consumers (Activity feed, store JSON) even if the runner
280
+ * didn't already attach it. */
281
+ if (!run.project_slug)
282
+ run.project_slug = project_slug;
283
+ emit({
284
+ kind: 'agent_run_finished',
285
+ slug,
286
+ run_id: run.id,
287
+ status: run.status,
288
+ at: clock(),
289
+ project_slug,
290
+ });
291
+ }
292
+ finally {
293
+ releaseSlot(project_slug);
294
+ }
295
+ return run;
296
+ }
297
+ function status() {
298
+ const perProject = {};
299
+ for (const [k, v] of perProjectRunning.entries())
300
+ perProject[k] = v;
301
+ return {
302
+ running,
303
+ tick_interval_ms: tickIntervalMs,
304
+ last_tick_at: lastTickAt,
305
+ concurrency: {
306
+ global_running: globalRunning,
307
+ global_max: cachedGlobalCap,
308
+ per_project_running: perProject,
309
+ per_project_max: cachedPerProjectCap,
310
+ },
311
+ };
312
+ }
313
+ /* Special-case: when dispatchAgent throws for a 'paused' agent,
314
+ * we emit the skipped event but the test expects no throw. The
315
+ * test reads runnerCalls.length === 0 + checks the event. To
316
+ * avoid the throw breaking the test, we wrap. Actually re-read
317
+ * the test: `await rt.dispatchAgent('alpha', 'should-skip')` --
318
+ * does NOT expect.rejects. So the dispatch must RESOLVE for
319
+ * non-active agents. Fix: return a synthetic "skipped" run
320
+ * instead of throwing. */
321
+ async function dispatchAgentSoft(slug, trigger_reason, opts) {
322
+ if (!running) {
323
+ throw new Error('runtime not started -- call start() first');
324
+ }
325
+ const def = await getAgentDefinition(slug, { root });
326
+ if (!def) {
327
+ throw new Error('agent "' + slug + '" not registered');
328
+ }
329
+ const project_slug = opts?.project_slug || 'self';
330
+ if (def.status !== 'active') {
331
+ const now = clock();
332
+ emit({
333
+ kind: 'agent_run_skipped',
334
+ slug,
335
+ reason: 'agent status=' + def.status,
336
+ at: now,
337
+ project_slug,
338
+ });
339
+ return {
340
+ id: 'skipped-' + now,
341
+ slug,
342
+ trigger_kind: 'manual',
343
+ trigger_reason,
344
+ started_at: now,
345
+ ended_at: now,
346
+ status: 'failed',
347
+ tokens_in: 0,
348
+ tokens_out: 0,
349
+ tool_calls: 0,
350
+ rejected_approvals: 0,
351
+ last_reply_summary: 'skipped: ' + def.status,
352
+ kill_reason: 'agent not active (status=' + def.status + ')',
353
+ project_slug,
354
+ };
355
+ }
356
+ /* Slice 2 -- gate on semaphores. */
357
+ await acquireSlot(slug, project_slug);
358
+ let run;
359
+ try {
360
+ emit({
361
+ kind: 'agent_run_started',
362
+ slug,
363
+ trigger_reason,
364
+ at: clock(),
365
+ project_slug,
366
+ });
367
+ const runner = await resolveRunner();
368
+ try {
369
+ run = await runner(slug, trigger_reason, { project_slug });
370
+ }
371
+ catch (err) {
372
+ emit({
373
+ kind: 'agent_run_finished',
374
+ slug,
375
+ run_id: 'run-error',
376
+ status: 'failed',
377
+ at: clock(),
378
+ project_slug,
379
+ });
380
+ throw err;
381
+ }
382
+ if (!run.project_slug)
383
+ run.project_slug = project_slug;
384
+ emit({
385
+ kind: 'agent_run_finished',
386
+ slug,
387
+ run_id: run.id,
388
+ status: run.status,
389
+ at: clock(),
390
+ project_slug,
391
+ });
392
+ }
393
+ finally {
394
+ releaseSlot(project_slug);
395
+ }
396
+ return run;
397
+ }
398
+ /* Wire emitter passthrough. */
399
+ function on(event, cb) {
400
+ emitter.on(event, cb);
401
+ }
402
+ function off(event, cb) {
403
+ emitter.off(event, cb);
404
+ }
405
+ /* Suppress unused warning. dispatchAgent is the public path;
406
+ * dispatchAgentSoft is the actual implementation chosen. */
407
+ void dispatchAgent;
408
+ return {
409
+ start,
410
+ stop,
411
+ status,
412
+ dispatchAgent: dispatchAgentSoft,
413
+ tickNow,
414
+ on,
415
+ off,
416
+ getAgentsRoot: () => root,
417
+ emitExternal: (e) => { emit(e); },
418
+ };
419
+ }
420
+ function clamp(n, lo, hi) {
421
+ if (!Number.isFinite(n))
422
+ return lo;
423
+ if (n < lo)
424
+ return lo;
425
+ if (n > hi)
426
+ return hi;
427
+ return n;
428
+ }
429
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/agents/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Agent system prompt builder (Director sprint slice 15a).
3
+ *
4
+ * Composes the effective system prompt for one agent run from:
5
+ * - Identity: def.prompt_addition (role + role rules).
6
+ * - Project context (root + name + version).
7
+ * - Filtered graph snapshot (slice 11).
8
+ * - Bridge protocol reminder.
9
+ * - Doctrine pointers (testing-policy, language-sovereignty,
10
+ * default-design-system, gates, pizarron, nac3-attrs,
11
+ * mcp-bridge-lifecycle, byok-vs-managed).
12
+ * - Allowed verbs (so the LLM does not invent).
13
+ *
14
+ * Pure function. The runner / chat builds the inputs (graph
15
+ * snapshot via filterSnapshotForRole, language_choices via
16
+ * workflow state) and calls us. We do NOT do I/O.
17
+ *
18
+ * ASCII-only.
19
+ */
20
+ import type { AgentDefinition } from './types.js';
21
+ export interface BuildOpts {
22
+ def: AgentDefinition;
23
+ project_root: string;
24
+ project_name: string;
25
+ forge_version: string;
26
+ /** Pre-rendered + per-role-filtered graph snapshot (see slice
27
+ * 11 filterSnapshotForRole). Empty string when worker is
28
+ * unreachable or graph is empty -- the section is omitted. */
29
+ graph_snapshot_section?: string;
30
+ /** Pre-rendered workflow state section (PROJECT WORKFLOW STATE
31
+ * block from workflow_inject.ts). Empty string when no
32
+ * workflow yet. */
33
+ workflow_section?: string;
34
+ }
35
+ export declare function buildAgentSystemPrompt(opts: BuildOpts): string;
36
+ //# sourceMappingURL=system_prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system_prompt.d.ts","sourceRoot":"","sources":["../../src/agents/system_prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,GAAG,EAAY,eAAe,CAAC;IAC/B,YAAY,EAAG,MAAM,CAAC;IACtB,YAAY,EAAG,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB;;mEAE+D;IAC/D,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;wBAEoB;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAwBD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAqF9D"}
@@ -0,0 +1,101 @@
1
+ const DOCTRINE_POINTERS = [
2
+ '- testing-policy (TDD-first scope + when to write red vs verify green)',
3
+ '- language-sovereignty (user picks language; Director suggests, never imposes)',
4
+ '- default-design-system (Yujin DS as the default front-end; override via R8)',
5
+ '- workflow (6 phases / 18 steps)',
6
+ '- gates (refuse-to-advance per phase)',
7
+ '- pizarron (create-tab vs open-file; canvas vs editor)',
8
+ '- nac3-attrs (data-nac-id / data-nac-role / data-nac-action)',
9
+ '- mcp-bridge-lifecycle (when to discover, when to call, when to disable)',
10
+ '- byok-vs-managed (per-tenant brain vs Yujin-managed brain)',
11
+ '- r8-modal (destructive verbs always confirm)',
12
+ ];
13
+ const BRIDGE_PROTOCOL = [
14
+ 'INTER-AGENT BRIDGE protocol:',
15
+ '- You communicate with peer agents through the bridge (src/agents/bridge.ts).',
16
+ '- Every send is rate-limited by the pair token cap + loop detector.',
17
+ '- If a pair freezes (auto_revoked), report to the Director instead of retrying.',
18
+ '- Bridge payloads are JSON: { from_slug, to_slug, payload, tokens_used }.',
19
+ '- The receiver drains its inbox at the next tick; do NOT block waiting.',
20
+ ];
21
+ export function buildAgentSystemPrompt(opts) {
22
+ const def = opts.def;
23
+ const parts = [];
24
+ /* Header block: role metadata. */
25
+ parts.push('=================================================================');
26
+ parts.push('ROLE: ' + def.slug);
27
+ parts.push('NAME: ' + def.name);
28
+ parts.push('BRAIN TIER: ' + def.brain_tier);
29
+ parts.push('STATUS: ' + def.status);
30
+ parts.push('TRIGGER: ' + def.trigger.kind);
31
+ parts.push('=================================================================');
32
+ parts.push('');
33
+ /* Identity + role rules from the def. */
34
+ parts.push(def.prompt_addition);
35
+ parts.push('');
36
+ /* Project context. */
37
+ parts.push('=================================================================');
38
+ parts.push('CONTEXT (this project)');
39
+ parts.push('=================================================================');
40
+ parts.push('');
41
+ parts.push('- Project: ' + opts.project_name);
42
+ parts.push('- Root: ' + opts.project_root);
43
+ parts.push('- Forge: ' + opts.forge_version);
44
+ parts.push('');
45
+ /* Bridge protocol (relevant when can_call OR can_be_called_by
46
+ * is non-empty -- almost always, but still gated for clarity). */
47
+ if ((def.can_call && def.can_call.length > 0) || (def.can_be_called_by && def.can_be_called_by.length > 0)) {
48
+ parts.push('=================================================================');
49
+ parts.push('BRIDGE PROTOCOL');
50
+ parts.push('=================================================================');
51
+ parts.push('');
52
+ parts.push(...BRIDGE_PROTOCOL);
53
+ parts.push('');
54
+ if (def.can_call && def.can_call.length > 0) {
55
+ parts.push('You can call: [' + def.can_call.join(', ') + ']');
56
+ }
57
+ if (def.can_be_called_by && def.can_be_called_by.length > 0) {
58
+ parts.push('You accept inbound from: [' + def.can_be_called_by.join(', ') + ']');
59
+ }
60
+ parts.push('');
61
+ }
62
+ /* Allowed verbs -- the LLM does NOT invent verb names. */
63
+ parts.push('=================================================================');
64
+ parts.push('ALLOWED VERBS (yujin.* you are permitted to invoke)');
65
+ parts.push('=================================================================');
66
+ parts.push('');
67
+ if (def.allowed_verbs && def.allowed_verbs.length > 0) {
68
+ for (const v of def.allowed_verbs)
69
+ parts.push('- ' + v);
70
+ }
71
+ else {
72
+ parts.push('(no verbs declared; the runner will reject any tool call)');
73
+ }
74
+ parts.push('');
75
+ /* Doctrine pointers (on-demand fetch). */
76
+ parts.push('=================================================================');
77
+ parts.push('DOCTRINE POINTERS (on-demand)');
78
+ parts.push('=================================================================');
79
+ parts.push('');
80
+ parts.push('Fetch a full doctrine via yujin.doctrine.discover({slugs: [...]}):');
81
+ parts.push('');
82
+ for (const p of DOCTRINE_POINTERS)
83
+ parts.push(p);
84
+ parts.push('');
85
+ /* Optional graph snapshot section. */
86
+ if (opts.graph_snapshot_section && opts.graph_snapshot_section.trim().length > 0) {
87
+ parts.push('=================================================================');
88
+ parts.push('PROJECT GRAPH (this turn -- the panoramic structural view)');
89
+ parts.push('=================================================================');
90
+ parts.push('');
91
+ parts.push(opts.graph_snapshot_section);
92
+ parts.push('');
93
+ }
94
+ /* Optional workflow state section. */
95
+ if (opts.workflow_section && opts.workflow_section.trim().length > 0) {
96
+ parts.push(opts.workflow_section);
97
+ parts.push('');
98
+ }
99
+ return parts.join('\n');
100
+ }
101
+ //# sourceMappingURL=system_prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system_prompt.js","sourceRoot":"","sources":["../../src/agents/system_prompt.ts"],"names":[],"mappings":"AAoCA,MAAM,iBAAiB,GAAG;IACxB,+EAA+E;IAC/E,iFAAiF;IACjF,8EAA8E;IAC9E,+CAA+C;IAC/C,uDAAuD;IACvD,qEAAqE;IACrE,yEAAyE;IACzE,2EAA2E;IAC3E,mEAAmE;IACnE,4DAA4D;CAC7D,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,8BAA8B;IAC9B,+EAA+E;IAC/E,qEAAqE;IACrE,iFAAiF;IACjF,2EAA2E;IAC3E,yEAAyE;CAC1E,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,IAAe;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACrB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,kCAAkC;IAClC,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,yCAAyC;IACzC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,sBAAsB;IACtB,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf;sEACkE;IAClE,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3G,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,KAAK,CAAC,IAAI,CAAC,4BAA4B,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACnF,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;IAC1E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,0CAA0C;IAC1C,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC5C,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACjF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,iBAAiB;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,sCAAsC;IACtC,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,sCAAsC;IACtC,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -55,7 +55,7 @@ export interface AgentDefinition {
55
55
  revoked_reason?: string;
56
56
  }
57
57
  /** Outcome of an AgentRun. */
58
- export type AgentRunStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'timeout' | 'killed_quota' | 'killed_rejections' | 'killed_user';
58
+ export type AgentRunStatus = 'queued' | 'running' | 'succeeded' | 'failed' | 'timeout' | 'killed_quota' | 'killed_rejections' | 'killed_user' | 'paused_for_approval';
59
59
  export interface AgentRun {
60
60
  id: string;
61
61
  slug: string;
@@ -76,6 +76,11 @@ export interface AgentRun {
76
76
  last_reply_summary: string;
77
77
  /** When status is a kill code, the reason in plain text. */
78
78
  kill_reason?: string;
79
+ /** Slice 1 of N-projects sprint -- project the run belongs to.
80
+ * Defaults to 'self' (single-project mode = legacy behaviour).
81
+ * Lets the Activity panel + SVG + bridge inspector filter by
82
+ * project; lets semaphores cap concurrent runs per project. */
83
+ project_slug?: string;
79
84
  }
80
85
  /** Status of a single inter-agent message. */
81
86
  export type AgentMessageStatus = 'pending' | 'delivered' | 'read' | 'expired' | 'auto_revoked';
@@ -96,6 +101,12 @@ export interface AgentMessage {
96
101
  read_at?: number;
97
102
  /** TTL in epoch ms. Default = created_at + agent.bridge.message_ttl_seconds. */
98
103
  expires_at: number;
104
+ /** Slice 1 of N-projects sprint -- project the message belongs
105
+ * to. Mirrors AgentRun.project_slug; defaults to 'self'. Drives
106
+ * bridge file sharding (`bridge-{project_slug}.json`) so two
107
+ * projects can swap messages without contending on a single
108
+ * global JSON. */
109
+ project_slug?: string;
99
110
  }
100
111
  /** Pair-level state tracked by the bridge for cap enforcement +
101
112
  * loop detection. Stored alongside agent_messages. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,+CAA+C;AAC/C,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAI,gBAAgB,CAAC;IACzB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,0CAA0C;AAC1C,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,cAAc,CAAC;AAEnB,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,UAAU,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3C,gCAAgC;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB;;qCAEiC;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B;;kEAE8D;IAC9D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;uCACmC;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,8BAA8B;AAC9B,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,cAAc,GACd,mBAAmB,GACnB,aAAa,CAAC;AAElB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,gBAAgB,CAAC;IAC/B;+DAC2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B;oEACgE;IAChE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,WAAW,GACX,MAAM,GACN,SAAS,GACT,cAAc,CAAC;AAEnB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX;2DACuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;uDACuD;AACvD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,cAAc,CAAC;CAC5C;AAID,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAatD;AAKD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAI9D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgIH;2DAC2D;AAC3D,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS;IAC5C,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB;;kEAE8D;IAC9D,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;sDAEsD;AACtD,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgJH;2DAC2D;AAC3D,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS;IAC5C,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB;;kEAE8D;IAC9D,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;sDAEsD;AACtD,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"yf.d.ts","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":";AAUA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDpC,wBAAgB,YAAY,IAAI,OAAO,CAkFtC"}
1
+ {"version":3,"file":"yf.d.ts","sourceRoot":"","sources":["../../src/bin/yf.ts"],"names":[],"mappings":";AAUA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DpC,wBAAgB,YAAY,IAAI,OAAO,CAkFtC"}