funolio-agent 0.17.8 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/approval.d.ts +7 -6
- package/dist/approval.d.ts.map +1 -1
- package/dist/approval.js +40 -10
- package/dist/approval.js.map +1 -1
- package/dist/auth/anthropic-subscription.d.ts +9 -29
- package/dist/auth/anthropic-subscription.d.ts.map +1 -1
- package/dist/auth/anthropic-subscription.js +12 -133
- package/dist/auth/anthropic-subscription.js.map +1 -1
- package/dist/auth/auto-detect.d.ts +28 -6
- package/dist/auth/auto-detect.d.ts.map +1 -1
- package/dist/auth/auto-detect.js +52 -205
- package/dist/auth/auto-detect.js.map +1 -1
- package/dist/auth/credential-reader.d.ts +24 -4
- package/dist/auth/credential-reader.d.ts.map +1 -1
- package/dist/auth/credential-reader.js +31 -256
- package/dist/auth/credential-reader.js.map +1 -1
- package/dist/auth/credential-status.d.ts +7 -27
- package/dist/auth/credential-status.d.ts.map +1 -1
- package/dist/auth/credential-status.js +7 -95
- package/dist/auth/credential-status.js.map +1 -1
- package/dist/auth/index.d.ts +9 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +10 -10
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/subscription-runtime.d.ts +19 -23
- package/dist/auth/subscription-runtime.d.ts.map +1 -1
- package/dist/auth/subscription-runtime.js +24 -292
- package/dist/auth/subscription-runtime.js.map +1 -1
- package/dist/auth/token-refresh.d.ts +19 -28
- package/dist/auth/token-refresh.d.ts.map +1 -1
- package/dist/auth/token-refresh.js +26 -464
- package/dist/auth/token-refresh.js.map +1 -1
- package/dist/backfill.js +2 -2
- package/dist/backfill.js.map +1 -1
- package/dist/bot-manager.d.ts +5 -6
- package/dist/bot-manager.d.ts.map +1 -1
- package/dist/bot-manager.js +20 -62
- package/dist/bot-manager.js.map +1 -1
- package/dist/clerk-model.d.ts +0 -1
- package/dist/clerk-model.d.ts.map +1 -1
- package/dist/clerk-model.js +24 -50
- package/dist/clerk-model.js.map +1 -1
- package/dist/commands/configure-provider.js +2 -2
- package/dist/commands/configure-provider.js.map +1 -1
- package/dist/commands/configure.d.ts.map +1 -1
- package/dist/commands/configure.js +10 -14
- package/dist/commands/configure.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +51 -229
- package/dist/commands/start.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/context-compressor.d.ts +6 -1
- package/dist/context-compressor.d.ts.map +1 -1
- package/dist/context-compressor.js +87 -18
- package/dist/context-compressor.js.map +1 -1
- package/dist/context-window.d.ts +2 -8
- package/dist/context-window.d.ts.map +1 -1
- package/dist/context-window.js +4 -4
- package/dist/context-window.js.map +1 -1
- package/dist/eval/orchestrator-front-door-replay.js +43 -2
- package/dist/eval/orchestrator-front-door-replay.js.map +1 -1
- package/dist/eval/orchestrator-todo-dispatch-replay.d.ts +2 -0
- package/dist/eval/orchestrator-todo-dispatch-replay.d.ts.map +1 -0
- package/dist/eval/orchestrator-todo-dispatch-replay.js +253 -0
- package/dist/eval/orchestrator-todo-dispatch-replay.js.map +1 -0
- package/dist/eval/orchestrator-todo-planning-replay.d.ts +2 -0
- package/dist/eval/orchestrator-todo-planning-replay.d.ts.map +1 -0
- package/dist/eval/orchestrator-todo-planning-replay.js +247 -0
- package/dist/eval/orchestrator-todo-planning-replay.js.map +1 -0
- package/dist/eval/policy-detection-replay.d.ts +2 -0
- package/dist/eval/policy-detection-replay.d.ts.map +1 -0
- package/dist/eval/policy-detection-replay.js +122 -0
- package/dist/eval/policy-detection-replay.js.map +1 -0
- package/dist/eval/todo-worker-runtime-replay.d.ts +2 -0
- package/dist/eval/todo-worker-runtime-replay.d.ts.map +1 -0
- package/dist/eval/todo-worker-runtime-replay.js +520 -0
- package/dist/eval/todo-worker-runtime-replay.js.map +1 -0
- package/dist/integration-tokens.d.ts +6 -0
- package/dist/integration-tokens.d.ts.map +1 -1
- package/dist/integration-tokens.js +43 -0
- package/dist/integration-tokens.js.map +1 -1
- package/dist/local-data.d.ts +134 -1
- package/dist/local-data.d.ts.map +1 -1
- package/dist/local-data.js +711 -18
- package/dist/local-data.js.map +1 -1
- package/dist/local-db.d.ts.map +1 -1
- package/dist/local-db.js +216 -12
- package/dist/local-db.js.map +1 -1
- package/dist/local-funnel.d.ts.map +1 -1
- package/dist/local-funnel.js +7 -0
- package/dist/local-funnel.js.map +1 -1
- package/dist/local-server.d.ts.map +1 -1
- package/dist/local-server.js +119 -96
- package/dist/local-server.js.map +1 -1
- package/dist/mcp/bridge-server.d.ts.map +1 -1
- package/dist/mcp/bridge-server.js +8 -2
- package/dist/mcp/bridge-server.js.map +1 -1
- package/dist/mcp/manager.d.ts +5 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +131 -2
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/sync-cli-config.d.ts +5 -0
- package/dist/mcp/sync-cli-config.d.ts.map +1 -1
- package/dist/mcp/sync-cli-config.js +10 -2
- package/dist/mcp/sync-cli-config.js.map +1 -1
- package/dist/message-loop.d.ts +1 -10
- package/dist/message-loop.d.ts.map +1 -1
- package/dist/message-loop.js +179 -250
- package/dist/message-loop.js.map +1 -1
- package/dist/mqtt-client.d.ts +44 -0
- package/dist/mqtt-client.d.ts.map +1 -1
- package/dist/mqtt-client.js +2 -2
- package/dist/mqtt-client.js.map +1 -1
- package/dist/orchestration/front-door-policy.d.ts +26 -9
- package/dist/orchestration/front-door-policy.d.ts.map +1 -1
- package/dist/orchestration/front-door-policy.js +242 -69
- package/dist/orchestration/front-door-policy.js.map +1 -1
- package/dist/orchestration/orchestrator-blocked-prompt.d.ts +18 -0
- package/dist/orchestration/orchestrator-blocked-prompt.d.ts.map +1 -0
- package/dist/orchestration/orchestrator-blocked-prompt.js +46 -0
- package/dist/orchestration/orchestrator-blocked-prompt.js.map +1 -0
- package/dist/orchestration/orchestrator-final-response-prompt.d.ts +10 -0
- package/dist/orchestration/orchestrator-final-response-prompt.d.ts.map +1 -0
- package/dist/orchestration/orchestrator-final-response-prompt.js +39 -0
- package/dist/orchestration/orchestrator-final-response-prompt.js.map +1 -0
- package/dist/orchestration/orchestrator-operating-prompt.d.ts +11 -0
- package/dist/orchestration/orchestrator-operating-prompt.d.ts.map +1 -1
- package/dist/orchestration/orchestrator-operating-prompt.js +106 -36
- package/dist/orchestration/orchestrator-operating-prompt.js.map +1 -1
- package/dist/orchestration/policy-prompt.d.ts +6 -0
- package/dist/orchestration/policy-prompt.d.ts.map +1 -0
- package/dist/orchestration/policy-prompt.js +40 -0
- package/dist/orchestration/policy-prompt.js.map +1 -0
- package/dist/orchestration/worker-operating-prompt.d.ts +16 -0
- package/dist/orchestration/worker-operating-prompt.d.ts.map +1 -0
- package/dist/orchestration/worker-operating-prompt.js +75 -0
- package/dist/orchestration/worker-operating-prompt.js.map +1 -0
- package/dist/orchestrator.d.ts +19 -0
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +614 -54
- package/dist/orchestrator.js.map +1 -1
- package/dist/policy-detection.d.ts +40 -0
- package/dist/policy-detection.d.ts.map +1 -0
- package/dist/policy-detection.js +298 -0
- package/dist/policy-detection.js.map +1 -0
- package/dist/providers/anthropic.d.ts +0 -5
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +34 -51
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/claude-cli.d.ts.map +1 -1
- package/dist/providers/claude-cli.js +11 -2
- package/dist/providers/claude-cli.js.map +1 -1
- package/dist/providers/codex-cli.d.ts.map +1 -1
- package/dist/providers/codex-cli.js +121 -2
- package/dist/providers/codex-cli.js.map +1 -1
- package/dist/providers/index.d.ts +6 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/summarization-pipeline.d.ts +1 -4
- package/dist/summarization-pipeline.d.ts.map +1 -1
- package/dist/summarization-pipeline.js +43 -56
- package/dist/summarization-pipeline.js.map +1 -1
- package/dist/tools/analyze-image.js +2 -2
- package/dist/tools/analyze-image.js.map +1 -1
- package/dist/tools/edit-file.d.ts.map +1 -1
- package/dist/tools/edit-file.js +16 -1
- package/dist/tools/edit-file.js.map +1 -1
- package/dist/tools/git-tools.d.ts.map +1 -1
- package/dist/tools/git-tools.js +32 -1
- package/dist/tools/git-tools.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/list-directory.d.ts.map +1 -1
- package/dist/tools/list-directory.js +23 -0
- package/dist/tools/list-directory.js.map +1 -1
- package/dist/tools/notify-user.d.ts.map +1 -1
- package/dist/tools/notify-user.js +15 -1
- package/dist/tools/notify-user.js.map +1 -1
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +3 -1
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/request-mcp-install.js +5 -5
- package/dist/tools/request-mcp-install.js.map +1 -1
- package/dist/tools/run-command.d.ts.map +1 -1
- package/dist/tools/run-command.js +16 -4
- package/dist/tools/run-command.js.map +1 -1
- package/dist/tools/sandbox.d.ts.map +1 -1
- package/dist/tools/sandbox.js +6 -0
- package/dist/tools/sandbox.js.map +1 -1
- package/dist/tools/schedule-task.d.ts.map +1 -1
- package/dist/tools/schedule-task.js +37 -0
- package/dist/tools/schedule-task.js.map +1 -1
- package/dist/tools/search-codebase.d.ts.map +1 -1
- package/dist/tools/search-codebase.js +251 -32
- package/dist/tools/search-codebase.js.map +1 -1
- package/dist/tools/todo-tasks.d.ts +2 -0
- package/dist/tools/todo-tasks.d.ts.map +1 -1
- package/dist/tools/todo-tasks.js +203 -6
- package/dist/tools/todo-tasks.js.map +1 -1
- package/dist/tools/web-fetch.d.ts.map +1 -1
- package/dist/tools/web-fetch.js +21 -2
- package/dist/tools/web-fetch.js.map +1 -1
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +38 -34
- package/dist/tools/web-search.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/wizard-state.d.ts.map +1 -1
- package/dist/wizard-state.js +30 -8
- package/dist/wizard-state.js.map +1 -1
- package/dist/wizard-support.d.ts +2 -2
- package/dist/wizard-support.d.ts.map +1 -1
- package/dist/wizard-support.js +80 -93
- package/dist/wizard-support.js.map +1 -1
- package/dist/workflow-engine.d.ts +3 -0
- package/dist/workflow-engine.d.ts.map +1 -1
- package/dist/workflow-engine.js +111 -82
- package/dist/workflow-engine.js.map +1 -1
- package/package.json +6 -1
|
@@ -13,29 +13,63 @@ function buildOrchestratorOperatingPrompt(input) {
|
|
|
13
13
|
const workflowLines = workflowNames.length > 0
|
|
14
14
|
? workflowNames.map((w) => `- "${w}"`).join('\n')
|
|
15
15
|
: '(none)';
|
|
16
|
+
const entryMode = input.entryMode || 'normal';
|
|
16
17
|
const projectName = input.projectName?.trim() || '(none)';
|
|
17
18
|
const projectFolder = input.projectFolder?.trim() || '(not set)';
|
|
19
|
+
const effectivePolicy = input.effectivePolicy?.trim() || 'No confirmed special policy is set.';
|
|
18
20
|
const recentSummary = input.recentSummary?.trim() || '(none)';
|
|
19
21
|
const lastFiveTurns = input.lastFiveTurns?.trim() || '(no recent turns)';
|
|
22
|
+
const signalLines = input.signalSummary
|
|
23
|
+
? [
|
|
24
|
+
input.signalSummary.matchedBots?.length ? `- Matched bot names: ${input.signalSummary.matchedBots.join(', ')}` : null,
|
|
25
|
+
input.signalSummary.matchedRoles?.length ? `- Matched role signals: ${input.signalSummary.matchedRoles.join(', ')}` : null,
|
|
26
|
+
input.signalSummary.matchedWorkflows?.length ? `- Matched workflow names: ${input.signalSummary.matchedWorkflows.join(', ')}` : null,
|
|
27
|
+
input.signalSummary.explicitTodoKeyword ? '- Explicit word detected: TODO' : null,
|
|
28
|
+
input.signalSummary.explicitWorkflowKeyword ? '- Explicit word detected: workflow' : null,
|
|
29
|
+
input.signalSummary.explicitDelegationKeyword ? '- Explicit word detected: delegate' : null,
|
|
30
|
+
].filter(Boolean).join('\n')
|
|
31
|
+
: '';
|
|
32
|
+
const entrySection = entryMode === 'orchestration_bias'
|
|
33
|
+
? `CODE-BASED FRONT DOOR SIGNALS
|
|
34
|
+
The front door found strong evidence that the user wants worker assignment, TODO handling, or workflow orchestration.
|
|
35
|
+
Pay attention to the ENTIRE user prompt. The most important routing signal may appear anywhere in the prompt, including near the end.
|
|
36
|
+
When these signals are present, do NOT silently keep all work yourself unless they are clearly incorrect.
|
|
37
|
+
Use delegate or workflow when the request maps to defined worker-role execution.
|
|
38
|
+
${signalLines || '- No additional signal details recorded.'}`
|
|
39
|
+
: `ROUTING POSTURE
|
|
40
|
+
Pay attention to the ENTIRE user prompt before deciding. The most important routing signal may appear anywhere in the prompt, including near the end.
|
|
41
|
+
Default to normal direct handling only for conversation, status, policy, or clarification work.
|
|
42
|
+
If the request maps to a defined worker role, route it instead of keeping it.
|
|
43
|
+
${signalLines || ''}`.trim();
|
|
20
44
|
return `You are ${input.orchestratorName} for Funolio.
|
|
21
45
|
|
|
22
|
-
|
|
46
|
+
You are making a routing decision only.
|
|
47
|
+
This step does NOT perform the user's task.
|
|
48
|
+
If the right answer is direct work later, return "execute_self" and do not do the work now.
|
|
49
|
+
Do NOT claim that files were created, work was completed, or tools were used in this step.
|
|
23
50
|
|
|
24
|
-
|
|
25
|
-
1) The user explicitly names another bot (${specialistNamesList})
|
|
26
|
-
2) A predefined system workflow clearly applies
|
|
51
|
+
This chat is usually direct between the user and you.
|
|
27
52
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
${entrySection}
|
|
56
|
+
|
|
57
|
+
Default behavior:
|
|
58
|
+
- respond directly when the user wants discussion, status, clarification, or guidance
|
|
59
|
+
- if the request maps to a defined worker role, route it to the appropriate worker
|
|
60
|
+
- use execute_self only for non-worker actions that you must handle directly
|
|
61
|
+
- use workflow when the request clearly requires multiple workers, staged work, or a named workflow
|
|
62
|
+
- a mentioned bot or role can be enough when it clearly defines who should do the work
|
|
63
|
+
- do NOT ask which worker to use
|
|
64
|
+
- do NOT delay execution
|
|
33
65
|
|
|
34
66
|
---
|
|
35
67
|
|
|
36
68
|
PRIMARY ROLE
|
|
37
69
|
- Your primary role is ${primaryRole}
|
|
38
|
-
-
|
|
70
|
+
- You are the orchestrator, not the worker, for defined worker-role tasks.
|
|
71
|
+
- Route defined worker-role tasks to workers even when the user did not say TODO or workflow explicitly.
|
|
72
|
+
- Only keep work in execute_self when the request is not a defined worker-role task or the worker-routing signal was clearly incorrect.
|
|
39
73
|
|
|
40
74
|
---
|
|
41
75
|
|
|
@@ -44,15 +78,16 @@ ${specialistLines}
|
|
|
44
78
|
|
|
45
79
|
AVAILABLE WORKFLOWS
|
|
46
80
|
${workflowLines}
|
|
47
|
-
|
|
48
|
-
If no workflows are listed, workflow mode is not available.
|
|
81
|
+
Use workflow mode when the user explicitly asks for workflow/TODO orchestration, asks for a named workflow, or clearly requests multi-worker staged work.
|
|
82
|
+
If no workflows are listed, named workflow mode is not available.
|
|
49
83
|
|
|
50
84
|
---
|
|
51
85
|
|
|
52
|
-
DELEGATION
|
|
53
|
-
-
|
|
54
|
-
|
|
55
|
-
|
|
86
|
+
DELEGATION AND WORKFLOW RULES
|
|
87
|
+
- Treat workflow/delegation as the default for defined worker-role execution.
|
|
88
|
+
- Choose delegate when one worker should do the task.
|
|
89
|
+
- Choose workflow when multiple workers or staged handoffs are needed.
|
|
90
|
+
- A named bot or role can be enough to route work when it clearly maps ownership.
|
|
56
91
|
|
|
57
92
|
- Delegate ONE clear task only
|
|
58
93
|
|
|
@@ -66,14 +101,8 @@ DELEGATION RULES (ONLY when triggered)
|
|
|
66
101
|
- The receiving bot has NO prior context
|
|
67
102
|
- Do NOT reference prior conversation ("as discussed", "above", etc.)
|
|
68
103
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
WORKFLOW RULES
|
|
72
|
-
- Only use workflow if:
|
|
73
|
-
- it is explicitly defined by the system
|
|
74
|
-
- AND requires multiple different specialists
|
|
75
|
-
|
|
76
|
-
- Do NOT create your own workflows
|
|
104
|
+
- Only use workflow when it is explicitly requested and a system-defined workflow is available.
|
|
105
|
+
- Do NOT create your own workflows.
|
|
77
106
|
|
|
78
107
|
---
|
|
79
108
|
|
|
@@ -86,20 +115,26 @@ CLARIFICATION
|
|
|
86
115
|
|
|
87
116
|
EXECUTION BOUNDARY
|
|
88
117
|
- If the user asks for explanation, advice, or discussion -> respond normally
|
|
89
|
-
- If the user asks for action
|
|
118
|
+
- If the user asks for action and it maps to a defined worker role -> delegate
|
|
119
|
+
- If the user asks for action and it maps to multiple worker roles or staged work -> workflow
|
|
120
|
+
- If the user asks for action and it does not map to a defined worker role -> execute_self
|
|
90
121
|
|
|
91
122
|
---
|
|
92
123
|
|
|
93
124
|
DECISION ORDER
|
|
94
|
-
1. If
|
|
95
|
-
2. If user
|
|
96
|
-
3. If user
|
|
97
|
-
4. If
|
|
98
|
-
5.
|
|
125
|
+
1. If the user wants discussion, status, clarification, or guidance -> respond
|
|
126
|
+
2. If the user wants action and it maps to one defined worker role -> delegate
|
|
127
|
+
3. If the user wants action and it maps to multiple worker roles or staged work -> workflow
|
|
128
|
+
4. If the user wants action and it does not map to a defined worker role -> execute_self
|
|
129
|
+
5. If the user explicitly requests multi-bot workflow/TODO/delegation and a single specialist should handle it -> delegate
|
|
130
|
+
6. If missing info makes execution unsafe -> clarify
|
|
99
131
|
|
|
100
132
|
---
|
|
101
133
|
|
|
102
134
|
OUTPUT JSON ONLY
|
|
135
|
+
Return exactly one JSON object.
|
|
136
|
+
Do not wrap it in markdown fences.
|
|
137
|
+
Do not add commentary before or after the JSON.
|
|
103
138
|
${JSON.stringify({
|
|
104
139
|
mode: 'respond | execute_self | delegate | workflow | clarify',
|
|
105
140
|
reason: 'short explanation',
|
|
@@ -118,6 +153,9 @@ PROJECT
|
|
|
118
153
|
- Name: ${projectName}
|
|
119
154
|
- Folder: ${projectFolder}
|
|
120
155
|
|
|
156
|
+
EFFECTIVE POLICY
|
|
157
|
+
${effectivePolicy}
|
|
158
|
+
|
|
121
159
|
RECENT SUMMARY
|
|
122
160
|
${recentSummary}
|
|
123
161
|
|
|
@@ -133,8 +171,9 @@ function parseOrchestratorFrontDoorDecision(raw) {
|
|
|
133
171
|
.replace(/^```\s*/i, '')
|
|
134
172
|
.replace(/\s*```$/i, '')
|
|
135
173
|
.trim();
|
|
174
|
+
const candidate = extractFirstJsonObject(unfenced) || unfenced;
|
|
136
175
|
try {
|
|
137
|
-
const parsed = JSON.parse(
|
|
176
|
+
const parsed = JSON.parse(candidate);
|
|
138
177
|
if (!parsed || typeof parsed !== 'object' || typeof parsed.mode !== 'string')
|
|
139
178
|
return null;
|
|
140
179
|
// Backward compat: map removed modes to safe fallbacks
|
|
@@ -149,11 +188,6 @@ function parseOrchestratorFrontDoorDecision(raw) {
|
|
|
149
188
|
else {
|
|
150
189
|
normalizedMode = 'execute_self';
|
|
151
190
|
}
|
|
152
|
-
// Safety net: ALL clarify → execute_self.
|
|
153
|
-
// Ben should just do the work. The front-door policy handles the rare true-delegate case.
|
|
154
|
-
if (normalizedMode === 'clarify') {
|
|
155
|
-
normalizedMode = 'execute_self';
|
|
156
|
-
}
|
|
157
191
|
// Safety net: if respond mode contains ANY orchestration language, auto-correct to execute_self
|
|
158
192
|
if (normalizedMode === 'respond' && typeof parsed.response === 'string') {
|
|
159
193
|
const resp = parsed.response.toLowerCase();
|
|
@@ -178,4 +212,40 @@ function parseOrchestratorFrontDoorDecision(raw) {
|
|
|
178
212
|
return null;
|
|
179
213
|
}
|
|
180
214
|
}
|
|
215
|
+
function extractFirstJsonObject(text) {
|
|
216
|
+
const start = text.indexOf('{');
|
|
217
|
+
if (start < 0)
|
|
218
|
+
return null;
|
|
219
|
+
let depth = 0;
|
|
220
|
+
let inString = false;
|
|
221
|
+
let escaped = false;
|
|
222
|
+
for (let i = start; i < text.length; i += 1) {
|
|
223
|
+
const ch = text[i];
|
|
224
|
+
if (inString) {
|
|
225
|
+
if (escaped) {
|
|
226
|
+
escaped = false;
|
|
227
|
+
}
|
|
228
|
+
else if (ch === '\\') {
|
|
229
|
+
escaped = true;
|
|
230
|
+
}
|
|
231
|
+
else if (ch === '"') {
|
|
232
|
+
inString = false;
|
|
233
|
+
}
|
|
234
|
+
continue;
|
|
235
|
+
}
|
|
236
|
+
if (ch === '"') {
|
|
237
|
+
inString = true;
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
if (ch === '{')
|
|
241
|
+
depth += 1;
|
|
242
|
+
if (ch === '}') {
|
|
243
|
+
depth -= 1;
|
|
244
|
+
if (depth === 0) {
|
|
245
|
+
return text.slice(start, i + 1);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
181
251
|
//# sourceMappingURL=orchestrator-operating-prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator-operating-prompt.js","sourceRoot":"","sources":["../../src/orchestration/orchestrator-operating-prompt.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"orchestrator-operating-prompt.js","sourceRoot":"","sources":["../../src/orchestration/orchestrator-operating-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-prompt.d.ts","sourceRoot":"","sources":["../../src/orchestration/policy-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,mBAAmB,EAC3B,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,MAAM,CA+BR"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildEffectivePolicyPromptSection = buildEffectivePolicyPromptSection;
|
|
4
|
+
function buildEffectivePolicyPromptSection(policy, opts) {
|
|
5
|
+
const heading = opts?.heading === undefined ? 'EFFECTIVE POLICY' : String(opts.heading).trim();
|
|
6
|
+
const lines = [];
|
|
7
|
+
if (policy.defaultCoder)
|
|
8
|
+
lines.push(`- Default coder: ${policy.defaultCoder}`);
|
|
9
|
+
if (policy.defaultQa)
|
|
10
|
+
lines.push(`- Default QA: ${policy.defaultQa}`);
|
|
11
|
+
if (policy.defaultIdeaReviewer)
|
|
12
|
+
lines.push(`- Default idea reviewer: ${policy.defaultIdeaReviewer}`);
|
|
13
|
+
if (policy.defaultBackendCoder)
|
|
14
|
+
lines.push(`- Default backend coder: ${policy.defaultBackendCoder}`);
|
|
15
|
+
const restrictions = [];
|
|
16
|
+
if (!policy.allowOrchestratorCode)
|
|
17
|
+
restrictions.push('does not code');
|
|
18
|
+
if (!policy.allowOrchestratorQa)
|
|
19
|
+
restrictions.push('does not QA');
|
|
20
|
+
if (!policy.allowOrchestratorDeploy)
|
|
21
|
+
restrictions.push('does not deploy');
|
|
22
|
+
if (!policy.allowOrchestratorSimulation)
|
|
23
|
+
restrictions.push('does not simulate work');
|
|
24
|
+
if (restrictions.length > 0) {
|
|
25
|
+
lines.push(`- Orchestrator restrictions: ${restrictions.join(', ')}`);
|
|
26
|
+
}
|
|
27
|
+
if (policy.statusReportingMode && policy.statusReportingMode !== 'event_plus_heartbeat') {
|
|
28
|
+
lines.push(`- Status reporting mode: ${policy.statusReportingMode}`);
|
|
29
|
+
}
|
|
30
|
+
if (policy.tone)
|
|
31
|
+
lines.push(`- Tone: ${policy.tone.replace(/_/g, ' ')}`);
|
|
32
|
+
if (policy.policyEnforcementLevel && policy.policyEnforcementLevel !== 'advisory') {
|
|
33
|
+
lines.push(`- Policy enforcement: ${policy.policyEnforcementLevel}`);
|
|
34
|
+
}
|
|
35
|
+
if (lines.length === 0) {
|
|
36
|
+
lines.push(`- ${opts?.defaultLine?.trim() || 'No confirmed special policy is set.'}`);
|
|
37
|
+
}
|
|
38
|
+
return heading ? [heading, ...lines].join('\n') : lines.join('\n');
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=policy-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-prompt.js","sourceRoot":"","sources":["../../src/orchestration/policy-prompt.ts"],"names":[],"mappings":";;AAEA,8EAqCC;AArCD,SAAgB,iCAAiC,CAC/C,MAA2B,EAC3B,IAGC;IAED,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/F,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC/E,IAAI,MAAM,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,mBAAmB;QAAE,KAAK,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACrG,IAAI,MAAM,CAAC,mBAAmB;QAAE,KAAK,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAErG,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,qBAAqB;QAAE,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,CAAC,mBAAmB;QAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClE,IAAI,CAAC,MAAM,CAAC,uBAAuB;QAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1E,IAAI,CAAC,MAAM,CAAC,2BAA2B;QAAE,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,gCAAgC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,MAAM,CAAC,mBAAmB,IAAI,MAAM,CAAC,mBAAmB,KAAK,sBAAsB,EAAE,CAAC;QACxF,KAAK,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;QAClF,KAAK,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,qCAAqC,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface WorkerOperatingPromptInput {
|
|
2
|
+
taskId?: number | null;
|
|
3
|
+
workerName: string;
|
|
4
|
+
workerRole: string;
|
|
5
|
+
taskType: string;
|
|
6
|
+
taskTitle: string;
|
|
7
|
+
taskPrompt: string;
|
|
8
|
+
projectName?: string | null;
|
|
9
|
+
workspacePath?: string | null;
|
|
10
|
+
effectivePolicy?: string | null;
|
|
11
|
+
artifactRefs?: string[];
|
|
12
|
+
nextWorkerName?: string | null;
|
|
13
|
+
nextWorkerRole?: string | null;
|
|
14
|
+
}
|
|
15
|
+
export declare function buildWorkerOperatingPrompt(input: WorkerOperatingPromptInput): string;
|
|
16
|
+
//# sourceMappingURL=worker-operating-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-operating-prompt.d.ts","sourceRoot":"","sources":["../../src/orchestration/worker-operating-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAwEpF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildWorkerOperatingPrompt = buildWorkerOperatingPrompt;
|
|
4
|
+
function buildWorkerOperatingPrompt(input) {
|
|
5
|
+
const projectName = input.projectName?.trim() || '(not set)';
|
|
6
|
+
const workspacePath = input.workspacePath?.trim() || '(not set)';
|
|
7
|
+
const effectivePolicy = input.effectivePolicy?.trim() || 'No confirmed special policy is set.';
|
|
8
|
+
const artifactRefs = (input.artifactRefs || []).map((item) => item.trim()).filter(Boolean);
|
|
9
|
+
const nextWorkerName = input.nextWorkerName?.trim() || null;
|
|
10
|
+
const nextWorkerRole = input.nextWorkerRole?.trim() || 'general';
|
|
11
|
+
const lines = [
|
|
12
|
+
`You are ${input.workerName}.`,
|
|
13
|
+
`Your worker role is ${input.workerRole}.`,
|
|
14
|
+
`Current task type: ${input.taskType}.`,
|
|
15
|
+
'',
|
|
16
|
+
'CURRENT TODO',
|
|
17
|
+
input.taskId ? `TODO ID: ${input.taskId}` : null,
|
|
18
|
+
`Title: ${input.taskTitle}`,
|
|
19
|
+
`Task: ${input.taskPrompt}`,
|
|
20
|
+
'',
|
|
21
|
+
'RUNTIME CONTEXT',
|
|
22
|
+
`Project: ${projectName}`,
|
|
23
|
+
`Workspace: ${workspacePath}`,
|
|
24
|
+
'Effective policy:',
|
|
25
|
+
effectivePolicy,
|
|
26
|
+
artifactRefs.length > 0
|
|
27
|
+
? `Artifacts: ${artifactRefs.join('; ')}`
|
|
28
|
+
: 'Artifacts: none provided',
|
|
29
|
+
nextWorkerName
|
|
30
|
+
? `Next worker after you: ${nextWorkerName} (${nextWorkerRole})`
|
|
31
|
+
: 'Next worker after you: return results to the orchestrator',
|
|
32
|
+
'',
|
|
33
|
+
'WORK RULES',
|
|
34
|
+
'- Complete only this TODO.',
|
|
35
|
+
'- Use the provided artifacts first.',
|
|
36
|
+
'- If you need more context, use Funolio Search before guessing.',
|
|
37
|
+
'- Do not re-plan the workflow or silently change ownership.',
|
|
38
|
+
'- Keep your output concise, direct, and artifact-aware.',
|
|
39
|
+
'',
|
|
40
|
+
'WHEN YOU FINISH',
|
|
41
|
+
'- Use complete_worker_task.',
|
|
42
|
+
input.taskId ? `- Use task_id ${input.taskId} when calling complete_worker_task or block_worker_task.` : null,
|
|
43
|
+
'- Always include output_summary.',
|
|
44
|
+
'- Include artifact_refs for files, screenshots, logs, briefs, or other concrete outputs.',
|
|
45
|
+
nextWorkerName
|
|
46
|
+
? '- If the next worker already has a queued TODO, include handoff_prompt for that worker using the format below.'
|
|
47
|
+
: '- If there is no next worker task, include handoff_prompt for the orchestrator.',
|
|
48
|
+
nextWorkerName
|
|
49
|
+
? '- Only include insert_task if you need to create an additional task, such as a fix or re-QA loop.'
|
|
50
|
+
: null,
|
|
51
|
+
'',
|
|
52
|
+
'NEXT WORKER HANDOFF FORMAT',
|
|
53
|
+
'Write the next worker prompt as structured plain text with these exact headings:',
|
|
54
|
+
'GOAL',
|
|
55
|
+
'CONTEXT',
|
|
56
|
+
'ARTIFACTS',
|
|
57
|
+
'CONSTRAINTS',
|
|
58
|
+
'DONE WHEN',
|
|
59
|
+
nextWorkerName
|
|
60
|
+
? `Write it for ${nextWorkerName} as the audience. Be explicit and direct.`
|
|
61
|
+
: 'Use this structure only when you are creating a next worker task.',
|
|
62
|
+
'',
|
|
63
|
+
'BLOCKED',
|
|
64
|
+
'- If blocked, use Funolio Search first.',
|
|
65
|
+
'- If still blocked, do not guess.',
|
|
66
|
+
'- Use block_worker_task.',
|
|
67
|
+
'- Always include:',
|
|
68
|
+
' - blocker_summary: what is missing or unsafe',
|
|
69
|
+
' - checked_context: what you already searched or inspected',
|
|
70
|
+
' - user_question: the exact question the orchestrator should answer or ask next',
|
|
71
|
+
'- Keep blocker text concise and direct.',
|
|
72
|
+
].filter(Boolean);
|
|
73
|
+
return lines.join('\n');
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=worker-operating-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-operating-prompt.js","sourceRoot":"","sources":["../../src/orchestration/worker-operating-prompt.ts"],"names":[],"mappings":";;AAeA,gEAwEC;AAxED,SAAgB,0BAA0B,CAAC,KAAiC;IAC1E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC;IAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC;IACjE,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,qCAAqC,CAAC;IAC/F,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3F,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IAC5D,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAEjE,MAAM,KAAK,GAAG;QACZ,WAAW,KAAK,CAAC,UAAU,GAAG;QAC9B,uBAAuB,KAAK,CAAC,UAAU,GAAG;QAC1C,sBAAsB,KAAK,CAAC,QAAQ,GAAG;QACvC,EAAE;QACF,cAAc;QACd,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;QAChD,UAAU,KAAK,CAAC,SAAS,EAAE;QAC3B,SAAS,KAAK,CAAC,UAAU,EAAE;QAC3B,EAAE;QACF,iBAAiB;QACjB,YAAY,WAAW,EAAE;QACzB,cAAc,aAAa,EAAE;QAC7B,mBAAmB;QACnB,eAAe;QACf,YAAY,CAAC,MAAM,GAAG,CAAC;YACrB,CAAC,CAAC,cAAc,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzC,CAAC,CAAC,0BAA0B;QAC9B,cAAc;YACZ,CAAC,CAAC,0BAA0B,cAAc,KAAK,cAAc,GAAG;YAChE,CAAC,CAAC,2DAA2D;QAC/D,EAAE;QACF,YAAY;QACZ,4BAA4B;QAC5B,qCAAqC;QACrC,iEAAiE;QACjE,6DAA6D;QAC7D,yDAAyD;QACzD,EAAE;QACF,iBAAiB;QACjB,6BAA6B;QAC7B,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,MAAM,0DAA0D,CAAC,CAAC,CAAC,IAAI;QAC7G,kCAAkC;QAClC,0FAA0F;QAC1F,cAAc;YACZ,CAAC,CAAC,gHAAgH;YAClH,CAAC,CAAC,iFAAiF;QACrF,cAAc;YACZ,CAAC,CAAC,mGAAmG;YACrG,CAAC,CAAC,IAAI;QACR,EAAE;QACF,4BAA4B;QAC5B,kFAAkF;QAClF,MAAM;QACN,SAAS;QACT,WAAW;QACX,aAAa;QACb,WAAW;QACX,cAAc;YACZ,CAAC,CAAC,gBAAgB,cAAc,2CAA2C;YAC3E,CAAC,CAAC,mEAAmE;QACvE,EAAE;QACF,SAAS;QACT,yCAAyC;QACzC,mCAAmC;QACnC,0BAA0B;QAC1B,mBAAmB;QACnB,gDAAgD;QAChD,6DAA6D;QAC7D,kFAAkF;QAClF,yCAAyC;KAC1C,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAE9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/orchestrator.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ interface OrchestratorOpts {
|
|
|
22
22
|
mqttPublish: (result: AgentResult) => Promise<void>;
|
|
23
23
|
commandId: string;
|
|
24
24
|
workflowTemplateId?: string;
|
|
25
|
+
autoDispatchTodos?: boolean;
|
|
25
26
|
}
|
|
26
27
|
export declare class OrchestratorAgent {
|
|
27
28
|
private clerk;
|
|
@@ -104,6 +105,23 @@ export declare class OrchestratorAgent {
|
|
|
104
105
|
private buildDeterministicGuardrailQuestions;
|
|
105
106
|
private applyExecutionSpecToState;
|
|
106
107
|
private buildFrontDoorDelegateExecutionSpec;
|
|
108
|
+
private queueDelegateTodo;
|
|
109
|
+
private queueWorkflowTodoPlan;
|
|
110
|
+
private dispatchQueuedTodoChain;
|
|
111
|
+
private handleBlockedTodoTask;
|
|
112
|
+
private finalizeQueuedTodoChain;
|
|
113
|
+
private buildSingleDelegateTodoStep;
|
|
114
|
+
private buildTodoStepsFromTemplate;
|
|
115
|
+
private buildTodoStepsFromAssignments;
|
|
116
|
+
private inferWorkflowRoleOrder;
|
|
117
|
+
private normalizeTaskTypeForWorker;
|
|
118
|
+
private buildWorkerTaskPrompt;
|
|
119
|
+
private defaultTodoTitleForRole;
|
|
120
|
+
private defaultStepInstructionForRole;
|
|
121
|
+
private defaultSuccessCriteriaForRole;
|
|
122
|
+
private summarizeTodoTitle;
|
|
123
|
+
private markConversationOrchestrated;
|
|
124
|
+
private findAgentByName;
|
|
107
125
|
private executeOrchestratorOwnedWork;
|
|
108
126
|
/**
|
|
109
127
|
* Delegate Ben's completed work to another bot (e.g., John for QA, Brain for research).
|
|
@@ -174,6 +192,7 @@ export declare class OrchestratorAgent {
|
|
|
174
192
|
private handlePolicyUpdate;
|
|
175
193
|
private applyPendingPolicy;
|
|
176
194
|
private resolveWorkflowTemplate;
|
|
195
|
+
private resolveWorkflowTemplateByPrompt;
|
|
177
196
|
private persistRoleAssignments;
|
|
178
197
|
private roleAssignmentParticipants;
|
|
179
198
|
private isProjectKnowledgeRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAoC,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
|