@aicalas/loopy 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +101 -0
- package/dist/adapters.d.ts +111 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/adapters.js +27 -0
- package/dist/adapters.js.map +1 -0
- package/dist/attention/github.d.ts +57 -0
- package/dist/attention/github.d.ts.map +1 -0
- package/dist/attention/github.js +162 -0
- package/dist/attention/github.js.map +1 -0
- package/dist/authoring/attention-config.d.ts +16 -0
- package/dist/authoring/attention-config.d.ts.map +1 -0
- package/dist/authoring/attention-config.js +19 -0
- package/dist/authoring/attention-config.js.map +1 -0
- package/dist/authoring/channel-config.d.ts +16 -0
- package/dist/authoring/channel-config.d.ts.map +1 -0
- package/dist/authoring/channel-config.js +16 -0
- package/dist/authoring/channel-config.js.map +1 -0
- package/dist/authoring/define.d.ts +13 -0
- package/dist/authoring/define.d.ts.map +1 -0
- package/dist/authoring/define.js +13 -0
- package/dist/authoring/define.js.map +1 -0
- package/dist/authoring/effect-config.d.ts +16 -0
- package/dist/authoring/effect-config.d.ts.map +1 -0
- package/dist/authoring/effect-config.js +17 -0
- package/dist/authoring/effect-config.js.map +1 -0
- package/dist/authoring/harness-config.d.ts +30 -0
- package/dist/authoring/harness-config.d.ts.map +1 -0
- package/dist/authoring/harness-config.js +36 -0
- package/dist/authoring/harness-config.js.map +1 -0
- package/dist/authoring/index.d.ts +10 -0
- package/dist/authoring/index.d.ts.map +1 -0
- package/dist/authoring/index.js +9 -0
- package/dist/authoring/index.js.map +1 -0
- package/dist/authoring/schema.d.ts +9 -0
- package/dist/authoring/schema.d.ts.map +1 -0
- package/dist/authoring/schema.js +28 -0
- package/dist/authoring/schema.js.map +1 -0
- package/dist/authoring/types.d.ts +115 -0
- package/dist/authoring/types.d.ts.map +1 -0
- package/dist/authoring/types.js +2 -0
- package/dist/authoring/types.js.map +1 -0
- package/dist/authoring/watcher-config.d.ts +33 -0
- package/dist/authoring/watcher-config.d.ts.map +1 -0
- package/dist/authoring/watcher-config.js +61 -0
- package/dist/authoring/watcher-config.js.map +1 -0
- package/dist/build/discover.d.ts +34 -0
- package/dist/build/discover.d.ts.map +1 -0
- package/dist/build/discover.js +165 -0
- package/dist/build/discover.js.map +1 -0
- package/dist/build/identity.d.ts +9 -0
- package/dist/build/identity.d.ts.map +1 -0
- package/dist/build/identity.js +0 -0
- package/dist/build/identity.js.map +1 -0
- package/dist/channels/github.d.ts +14 -0
- package/dist/channels/github.d.ts.map +1 -0
- package/dist/channels/github.js +118 -0
- package/dist/channels/github.js.map +1 -0
- package/dist/channels/index.d.ts +2 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +2 -0
- package/dist/channels/index.js.map +1 -0
- package/dist/cli-help.d.ts +23 -0
- package/dist/cli-help.d.ts.map +1 -0
- package/dist/cli-help.js +186 -0
- package/dist/cli-help.js.map +1 -0
- package/dist/cli.d.ts +37 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +385 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +71 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +426 -0
- package/dist/config.js.map +1 -0
- package/dist/core/calls.d.ts +67 -0
- package/dist/core/calls.d.ts.map +1 -0
- package/dist/core/calls.js +109 -0
- package/dist/core/calls.js.map +1 -0
- package/dist/core/identifiers.d.ts +24 -0
- package/dist/core/identifiers.d.ts.map +1 -0
- package/dist/core/identifiers.js +129 -0
- package/dist/core/identifiers.js.map +1 -0
- package/dist/core/prompt.d.ts +5 -0
- package/dist/core/prompt.d.ts.map +1 -0
- package/dist/core/prompt.js +47 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/reconcile.d.ts +27 -0
- package/dist/core/reconcile.d.ts.map +1 -0
- package/dist/core/reconcile.js +36 -0
- package/dist/core/reconcile.js.map +1 -0
- package/dist/core/wire.d.ts +332 -0
- package/dist/core/wire.d.ts.map +1 -0
- package/dist/core/wire.js +543 -0
- package/dist/core/wire.js.map +1 -0
- package/dist/emitters/github.d.ts +15 -0
- package/dist/emitters/github.d.ts.map +1 -0
- package/dist/emitters/github.js +43 -0
- package/dist/emitters/github.js.map +1 -0
- package/dist/emitters/index.d.ts +2 -0
- package/dist/emitters/index.d.ts.map +1 -0
- package/dist/emitters/index.js +2 -0
- package/dist/emitters/index.js.map +1 -0
- package/dist/git.d.ts +17 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/git.js +122 -0
- package/dist/git.js.map +1 -0
- package/dist/github/client.d.ts +53 -0
- package/dist/github/client.d.ts.map +1 -0
- package/dist/github/client.js +169 -0
- package/dist/github/client.js.map +1 -0
- package/dist/github/trigger.d.ts +12 -0
- package/dist/github/trigger.d.ts.map +1 -0
- package/dist/github/trigger.js +21 -0
- package/dist/github/trigger.js.map +1 -0
- package/dist/github/writes.d.ts +4 -0
- package/dist/github/writes.d.ts.map +1 -0
- package/dist/github/writes.js +21 -0
- package/dist/github/writes.js.map +1 -0
- package/dist/harnesses/base.d.ts +41 -0
- package/dist/harnesses/base.d.ts.map +1 -0
- package/dist/harnesses/base.js +182 -0
- package/dist/harnesses/base.js.map +1 -0
- package/dist/harnesses/claude-executable.d.ts +42 -0
- package/dist/harnesses/claude-executable.d.ts.map +1 -0
- package/dist/harnesses/claude-executable.js +138 -0
- package/dist/harnesses/claude-executable.js.map +1 -0
- package/dist/harnesses/claude.d.ts +35 -0
- package/dist/harnesses/claude.d.ts.map +1 -0
- package/dist/harnesses/claude.js +160 -0
- package/dist/harnesses/claude.js.map +1 -0
- package/dist/harnesses/codex.d.ts +40 -0
- package/dist/harnesses/codex.d.ts.map +1 -0
- package/dist/harnesses/codex.js +118 -0
- package/dist/harnesses/codex.js.map +1 -0
- package/dist/harnesses/index.d.ts +2 -0
- package/dist/harnesses/index.d.ts.map +1 -0
- package/dist/harnesses/index.js +2 -0
- package/dist/harnesses/index.js.map +1 -0
- package/dist/harnesses/opencode.d.ts +33 -0
- package/dist/harnesses/opencode.d.ts.map +1 -0
- package/dist/harnesses/opencode.js +203 -0
- package/dist/harnesses/opencode.js.map +1 -0
- package/dist/identifiers.d.ts +26 -0
- package/dist/identifiers.d.ts.map +1 -0
- package/dist/identifiers.js +62 -0
- package/dist/identifiers.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +10 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +44 -0
- package/dist/log.js.map +1 -0
- package/dist/settings.d.ts +43 -0
- package/dist/settings.d.ts.map +1 -0
- package/dist/settings.js +128 -0
- package/dist/settings.js.map +1 -0
- package/dist/temporal/activities.d.ts +57 -0
- package/dist/temporal/activities.d.ts.map +1 -0
- package/dist/temporal/activities.js +366 -0
- package/dist/temporal/activities.js.map +1 -0
- package/dist/temporal/answers.d.ts +48 -0
- package/dist/temporal/answers.d.ts.map +1 -0
- package/dist/temporal/answers.js +78 -0
- package/dist/temporal/answers.js.map +1 -0
- package/dist/temporal/client.d.ts +13 -0
- package/dist/temporal/client.d.ts.map +1 -0
- package/dist/temporal/client.js +20 -0
- package/dist/temporal/client.js.map +1 -0
- package/dist/temporal/contracts.d.ts +19 -0
- package/dist/temporal/contracts.d.ts.map +1 -0
- package/dist/temporal/contracts.js +22 -0
- package/dist/temporal/contracts.js.map +1 -0
- package/dist/temporal/drain.d.ts +19 -0
- package/dist/temporal/drain.d.ts.map +1 -0
- package/dist/temporal/drain.js +109 -0
- package/dist/temporal/drain.js.map +1 -0
- package/dist/temporal/executions.d.ts +18 -0
- package/dist/temporal/executions.d.ts.map +1 -0
- package/dist/temporal/executions.js +15 -0
- package/dist/temporal/executions.js.map +1 -0
- package/dist/temporal/handle.d.ts +39 -0
- package/dist/temporal/handle.d.ts.map +1 -0
- package/dist/temporal/handle.js +95 -0
- package/dist/temporal/handle.js.map +1 -0
- package/dist/temporal/history.d.ts +75 -0
- package/dist/temporal/history.d.ts.map +1 -0
- package/dist/temporal/history.js +310 -0
- package/dist/temporal/history.js.map +1 -0
- package/dist/temporal/observe.d.ts +85 -0
- package/dist/temporal/observe.d.ts.map +1 -0
- package/dist/temporal/observe.js +110 -0
- package/dist/temporal/observe.js.map +1 -0
- package/dist/temporal/schedules.d.ts +26 -0
- package/dist/temporal/schedules.d.ts.map +1 -0
- package/dist/temporal/schedules.js +200 -0
- package/dist/temporal/schedules.js.map +1 -0
- package/dist/temporal/status.d.ts +63 -0
- package/dist/temporal/status.d.ts.map +1 -0
- package/dist/temporal/status.js +153 -0
- package/dist/temporal/status.js.map +1 -0
- package/dist/temporal/stuck.d.ts +58 -0
- package/dist/temporal/stuck.d.ts.map +1 -0
- package/dist/temporal/stuck.js +53 -0
- package/dist/temporal/stuck.js.map +1 -0
- package/dist/temporal/supervisor.d.ts +11 -0
- package/dist/temporal/supervisor.d.ts.map +1 -0
- package/dist/temporal/supervisor.js +506 -0
- package/dist/temporal/supervisor.js.map +1 -0
- package/dist/temporal/worker.d.ts +21 -0
- package/dist/temporal/worker.d.ts.map +1 -0
- package/dist/temporal/worker.js +82 -0
- package/dist/temporal/worker.js.map +1 -0
- package/dist/temporal/workflow-bundle.js +12742 -0
- package/dist/temporal/workflows.d.ts +9 -0
- package/dist/temporal/workflows.d.ts.map +1 -0
- package/dist/temporal/workflows.js +144 -0
- package/dist/temporal/workflows.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/dist/watchers/base.d.ts +4 -0
- package/dist/watchers/base.d.ts.map +1 -0
- package/dist/watchers/base.js +7 -0
- package/dist/watchers/base.js.map +1 -0
- package/dist/watchers/github/client.d.ts +52 -0
- package/dist/watchers/github/client.d.ts.map +1 -0
- package/dist/watchers/github/client.js +165 -0
- package/dist/watchers/github/client.js.map +1 -0
- package/dist/watchers/github/index.d.ts +19 -0
- package/dist/watchers/github/index.d.ts.map +1 -0
- package/dist/watchers/github/index.js +83 -0
- package/dist/watchers/github/index.js.map +1 -0
- package/dist/watchers/index.d.ts +2 -0
- package/dist/watchers/index.d.ts.map +1 -0
- package/dist/watchers/index.js +2 -0
- package/dist/watchers/index.js.map +1 -0
- package/dist/worker-lock.d.ts +11 -0
- package/dist/worker-lock.d.ts.map +1 -0
- package/dist/worker-lock.js +53 -0
- package/dist/worker-lock.js.map +1 -0
- package/package.json +92 -0
package/dist/cli.js
ADDED
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
4
|
+
import { WorkflowNotFoundError } from "@temporalio/client";
|
|
5
|
+
import { Runtime } from "@temporalio/worker";
|
|
6
|
+
import { Command, Option } from "commander";
|
|
7
|
+
import { createAdapterRegistries } from "./adapters.js";
|
|
8
|
+
import { buildWorkflowBundle, discoverWorkflows, } from "./build/discover.js";
|
|
9
|
+
import { findGuideTopic, guideTopicNames, helpPlaybook, renderGuideIndex } from "./cli-help.js";
|
|
10
|
+
import { parseInstanceState, } from "./core/wire.js";
|
|
11
|
+
import { cloneUrl, ensureRepo } from "./git.js";
|
|
12
|
+
import { LOG_LEVELS, log, setupLogging } from "./log.js";
|
|
13
|
+
import { loadSettings } from "./settings.js";
|
|
14
|
+
import { AgentActivities } from "./temporal/activities.js";
|
|
15
|
+
import { connectClient } from "./temporal/client.js";
|
|
16
|
+
import { ANSWER_INSTANCE_UPDATE, INSTANCE_STATE_QUERY, RESOLVE_INSTANCE_UPDATE, } from "./temporal/contracts.js";
|
|
17
|
+
import { drainOnSignal } from "./temporal/drain.js";
|
|
18
|
+
import { countOpenExecutions } from "./temporal/executions.js";
|
|
19
|
+
import { resumeDrainedSchedules, syncSchedules } from "./temporal/schedules.js";
|
|
20
|
+
import { describeInstance, listInstances, } from "./temporal/status.js";
|
|
21
|
+
import { createWorkerRuntime } from "./temporal/worker.js";
|
|
22
|
+
import { LOOPY_VERSION } from "./version.js";
|
|
23
|
+
import { WorkerLockError, WorkerProcessLock } from "./worker-lock.js";
|
|
24
|
+
class CliError extends Error {
|
|
25
|
+
}
|
|
26
|
+
const DEFAULT_SERVE_SERVICES = {
|
|
27
|
+
ensureRepo,
|
|
28
|
+
connectClient,
|
|
29
|
+
createWorkerRuntime,
|
|
30
|
+
discoverWorkflows,
|
|
31
|
+
buildWorkflowBundle,
|
|
32
|
+
};
|
|
33
|
+
const DEFAULT_CLI_SERVICES = {
|
|
34
|
+
serve: (settings, registries) => serve(settings, registries, DEFAULT_SERVE_SERVICES),
|
|
35
|
+
resolve: resolveInstance,
|
|
36
|
+
answer: answerInstance,
|
|
37
|
+
status: statusInstances,
|
|
38
|
+
};
|
|
39
|
+
export async function main(argv, services) {
|
|
40
|
+
const program = new Command()
|
|
41
|
+
.name("loopy")
|
|
42
|
+
.description("Host the loopy Temporal Worker Process.")
|
|
43
|
+
.version(LOOPY_VERSION)
|
|
44
|
+
.option("-c, --config <path>", "loopy config TOML (default: ~/.config/loopy/config.toml)")
|
|
45
|
+
.addOption(new Option("--log-level <level>", "override the configured log level").choices([
|
|
46
|
+
...LOG_LEVELS,
|
|
47
|
+
]));
|
|
48
|
+
program.addHelpText("after", `\n${helpPlaybook()}`);
|
|
49
|
+
program
|
|
50
|
+
.command("guide")
|
|
51
|
+
.description("Print operator guidance for a topic (offline; no config or Temporal needed).")
|
|
52
|
+
.argument("[topic]", `one of: ${guideTopicNames().join(", ")}`)
|
|
53
|
+
.action((topic) => {
|
|
54
|
+
if (topic === undefined) {
|
|
55
|
+
process.stdout.write(`${renderGuideIndex()}\n`);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const found = findGuideTopic(topic);
|
|
59
|
+
if (found === undefined) {
|
|
60
|
+
throw new CliError(`unknown guide topic ${JSON.stringify(topic)}; run \`loopy guide\` for the topic list`);
|
|
61
|
+
}
|
|
62
|
+
process.stdout.write(`${found.body}\n`);
|
|
63
|
+
});
|
|
64
|
+
program
|
|
65
|
+
.command("loop")
|
|
66
|
+
.description("Run the control and agent Worker Entities until interrupted.")
|
|
67
|
+
.option("-w, --workflows <path>", "directory of workflow modules (overrides the config)")
|
|
68
|
+
.action(async (loopOptions) => {
|
|
69
|
+
const options = program.opts();
|
|
70
|
+
const settings = withWorkflows(loadSettings(options.config), loopOptions.workflows);
|
|
71
|
+
startLogging(settings, options.logLevel);
|
|
72
|
+
await services.serve(settings, createAdapterRegistries());
|
|
73
|
+
});
|
|
74
|
+
program
|
|
75
|
+
.command("resolve")
|
|
76
|
+
.description("Resolve an instance call waiting on an ambiguous external operation.")
|
|
77
|
+
.argument("<workflow-id>", "instance Workflow ID")
|
|
78
|
+
.option("--call <address>", "call address, for example reviewer/call/2")
|
|
79
|
+
.option("--retry", "confirm the prior call can no longer mutate external state and retry")
|
|
80
|
+
.option("--halt", "halt the instance")
|
|
81
|
+
.action(async (workflowId, resolveOptions) => {
|
|
82
|
+
if (resolveOptions.retry === resolveOptions.halt) {
|
|
83
|
+
throw new CliError("resolve requires exactly one of --retry or --halt");
|
|
84
|
+
}
|
|
85
|
+
const options = program.opts();
|
|
86
|
+
const settings = loadSettings(options.config);
|
|
87
|
+
startLogging(settings, options.logLevel);
|
|
88
|
+
const request = {
|
|
89
|
+
action: resolveOptions.retry ? "retry" : "halt",
|
|
90
|
+
...(resolveOptions.call === undefined ? {} : { callId: resolveOptions.call }),
|
|
91
|
+
};
|
|
92
|
+
const state = await services.resolve(workflowId, request, settings);
|
|
93
|
+
process.stdout.write(`${JSON.stringify(state)}\n`);
|
|
94
|
+
});
|
|
95
|
+
program
|
|
96
|
+
.command("answer")
|
|
97
|
+
.description("Answer an instance call parked on ctx.ask, over any channel.")
|
|
98
|
+
.argument("<workflow-id>", "instance Workflow ID")
|
|
99
|
+
.argument("<text>", "the answer text delivered to the waiting ask")
|
|
100
|
+
.option("--call <address>", "call address, for example confirm-drop/call/1")
|
|
101
|
+
.action(async (workflowId, text, answerOptions) => {
|
|
102
|
+
const options = program.opts();
|
|
103
|
+
const settings = loadSettings(options.config);
|
|
104
|
+
startLogging(settings, options.logLevel);
|
|
105
|
+
const request = {
|
|
106
|
+
answer: text,
|
|
107
|
+
...(answerOptions.call === undefined ? {} : { callId: answerOptions.call }),
|
|
108
|
+
};
|
|
109
|
+
const state = await services.answer(workflowId, request, settings);
|
|
110
|
+
process.stdout.write(`${JSON.stringify(state)}\n`);
|
|
111
|
+
});
|
|
112
|
+
program
|
|
113
|
+
.command("status")
|
|
114
|
+
.description("Report loopy instance Executions from Temporal as NDJSON.")
|
|
115
|
+
.argument("[workflow-id]", "describe one instance instead of listing all")
|
|
116
|
+
.action(async (workflowId) => {
|
|
117
|
+
const options = program.opts();
|
|
118
|
+
const settings = loadSettings(options.config);
|
|
119
|
+
startLogging(settings, options.logLevel);
|
|
120
|
+
const views = await services.status(settings, workflowId);
|
|
121
|
+
for (const view of views)
|
|
122
|
+
process.stdout.write(`${JSON.stringify(view)}\n`);
|
|
123
|
+
});
|
|
124
|
+
await program.parseAsync([...argv]);
|
|
125
|
+
}
|
|
126
|
+
export async function serve(settings, registries, services) {
|
|
127
|
+
const processLock = new WorkerProcessLock(join(settings.workingDirectory, "worker.lock"));
|
|
128
|
+
processLock.acquire();
|
|
129
|
+
let connection;
|
|
130
|
+
try {
|
|
131
|
+
const workflows = await discover(settings, services);
|
|
132
|
+
validateWorkflowAdapters(workflows, registries);
|
|
133
|
+
const queue = settings.temporal.controlTaskQueue;
|
|
134
|
+
await reportAdapterDiagnostics(registries);
|
|
135
|
+
const workflowBundle = await services.buildWorkflowBundle({
|
|
136
|
+
workflows,
|
|
137
|
+
workingDirectory: settings.workingDirectory,
|
|
138
|
+
});
|
|
139
|
+
const repo = await services.ensureRepo(settings.workingDirectory, cloneUrl(settings.repository));
|
|
140
|
+
connection = await services.connectClient(settings.temporal);
|
|
141
|
+
const visibility = connection.client.workflow;
|
|
142
|
+
const activities = new AgentActivities({
|
|
143
|
+
repository: settings.repository,
|
|
144
|
+
workingDirectory: settings.workingDirectory,
|
|
145
|
+
projectDirectory: settings.projectDirectory,
|
|
146
|
+
repo,
|
|
147
|
+
harnesses: registries.harnesses,
|
|
148
|
+
watchers: registries.watchers,
|
|
149
|
+
emitters: registries.emitters,
|
|
150
|
+
attentionEmitters: registries.attentionEmitters,
|
|
151
|
+
channels: registries.channels,
|
|
152
|
+
observer: connection.client.workflow,
|
|
153
|
+
});
|
|
154
|
+
const runtime = await services.createWorkerRuntime(connection.nativeConnection, settings.temporal, activities, {
|
|
155
|
+
controlTaskQueue: queue,
|
|
156
|
+
workflowBundle,
|
|
157
|
+
maxConcurrentAgentActivities: settings.agentWorker.maxConcurrentActivities,
|
|
158
|
+
shutdownGraceSeconds: settings.shutdownGraceSeconds,
|
|
159
|
+
});
|
|
160
|
+
log.info(`Worker Process ready: control=${queue} agent=${settings.temporal.agentTaskQueue} namespace=${settings.temporal.namespace}`);
|
|
161
|
+
await syncSchedules(connection.client.schedule, {
|
|
162
|
+
settings,
|
|
163
|
+
workflows,
|
|
164
|
+
controlTaskQueue: queue,
|
|
165
|
+
});
|
|
166
|
+
await reportUndrainedExecutions(visibility, settings.repository);
|
|
167
|
+
const schedules = connection.client.schedule;
|
|
168
|
+
// A drain left polling paused on purpose; starting again is the deploy it was waiting for, so
|
|
169
|
+
// lift it. Only loopy's own drain pauses are lifted - an operator's pause is theirs to keep.
|
|
170
|
+
const resumed = await resumeDrainedSchedules(schedules, settings.repository);
|
|
171
|
+
if (resumed.length > 0)
|
|
172
|
+
log.info(`resumed ${resumed.length} drained Schedule(s)`);
|
|
173
|
+
const drain = drainOnSignal(settings, schedules, visibility);
|
|
174
|
+
try {
|
|
175
|
+
await runtime.run(drain.stopped);
|
|
176
|
+
}
|
|
177
|
+
finally {
|
|
178
|
+
drain.release();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
finally {
|
|
182
|
+
if (connection !== undefined)
|
|
183
|
+
await connection.close();
|
|
184
|
+
processLock.release();
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
export async function resolveInstance(workflowId, request, settings, connect = connectClient) {
|
|
188
|
+
const connection = await connect(settings.temporal);
|
|
189
|
+
try {
|
|
190
|
+
const handle = connection.client.workflow.getHandle(workflowId);
|
|
191
|
+
const callId = request.callId ?? (await soleParkedCall(handle));
|
|
192
|
+
const payload = { callId, action: request.action };
|
|
193
|
+
try {
|
|
194
|
+
return await handle.executeUpdate(RESOLVE_INSTANCE_UPDATE, { args: [payload] });
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
throw new CliError(`resolve failed: ${message(error)}`, { cause: error });
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
finally {
|
|
201
|
+
await connection.close();
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
export async function answerInstance(workflowId, request, settings, connect = connectClient) {
|
|
205
|
+
const connection = await connect(settings.temporal);
|
|
206
|
+
try {
|
|
207
|
+
const handle = connection.client.workflow.getHandle(workflowId);
|
|
208
|
+
const callId = request.callId ?? (await soleAwaitingCall(handle));
|
|
209
|
+
const payload = { callId, answer: request.answer };
|
|
210
|
+
try {
|
|
211
|
+
return await handle.executeUpdate(ANSWER_INSTANCE_UPDATE, { args: [payload] });
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
throw new CliError(`answer failed: ${message(error)}`, { cause: error });
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
finally {
|
|
218
|
+
await connection.close();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
export async function statusInstances(settings, workflowId, connect = connectClient) {
|
|
222
|
+
const connection = await connect(settings.temporal);
|
|
223
|
+
try {
|
|
224
|
+
const client = connection.client.workflow;
|
|
225
|
+
if (workflowId !== undefined) {
|
|
226
|
+
try {
|
|
227
|
+
return [await describeInstance(client, workflowId)];
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
// A listing only describes IDs Visibility just returned, but an explicit ID comes from an
|
|
231
|
+
// operator and may be stale or mistyped. Report that as a clean CLI error rather than
|
|
232
|
+
// letting the raw WorkflowNotFoundError escape as an unhandled stack trace.
|
|
233
|
+
if (error instanceof WorkflowNotFoundError) {
|
|
234
|
+
throw new CliError(`no loopy instance found with ID ${JSON.stringify(workflowId)}`);
|
|
235
|
+
}
|
|
236
|
+
throw error;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return await listInstances(client);
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
await connection.close();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
export async function runExecutable(argv, services) {
|
|
246
|
+
try {
|
|
247
|
+
await main(argv, services);
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
if (error instanceof WorkerLockError || error instanceof CliError) {
|
|
251
|
+
process.stderr.write(`error: ${error.message.replaceAll("\n", "\nerror: ")}\n`);
|
|
252
|
+
process.exitCode = 1;
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
throw error;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
async function soleParkedCall(handle) {
|
|
259
|
+
let state;
|
|
260
|
+
try {
|
|
261
|
+
state = parseInstanceState(await handle.query(INSTANCE_STATE_QUERY));
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
throw new CliError(`could not read instance state: ${message(error)}`, { cause: error });
|
|
265
|
+
}
|
|
266
|
+
const parked = state.calls.filter((call) => call.kind === "parked").map((call) => call.callId);
|
|
267
|
+
if (parked.length === 1)
|
|
268
|
+
return parked[0];
|
|
269
|
+
if (parked.length === 0)
|
|
270
|
+
throw new CliError("no call is awaiting reconciliation");
|
|
271
|
+
throw new CliError(`--call is required; parked calls: ${parked.sort().join(", ")}`);
|
|
272
|
+
}
|
|
273
|
+
async function soleAwaitingCall(handle) {
|
|
274
|
+
let state;
|
|
275
|
+
try {
|
|
276
|
+
state = parseInstanceState(await handle.query(INSTANCE_STATE_QUERY));
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
throw new CliError(`could not read instance state: ${message(error)}`, { cause: error });
|
|
280
|
+
}
|
|
281
|
+
const awaiting = state.calls
|
|
282
|
+
.filter((call) => call.kind === "awaiting_answer")
|
|
283
|
+
.map((call) => call.callId);
|
|
284
|
+
if (awaiting.length === 1)
|
|
285
|
+
return awaiting[0];
|
|
286
|
+
if (awaiting.length === 0)
|
|
287
|
+
throw new CliError("no call is awaiting an answer");
|
|
288
|
+
throw new CliError(`--call is required; asks awaiting an answer: ${awaiting.sort().join(", ")}`);
|
|
289
|
+
}
|
|
290
|
+
async function discover(settings, services) {
|
|
291
|
+
try {
|
|
292
|
+
return await services.discoverWorkflows(settings.workflows);
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
throw new CliError(`invalid workflows: ${message(error)}`, { cause: error });
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
function validateWorkflowAdapters(workflows, registries) {
|
|
299
|
+
for (const workflow of workflows) {
|
|
300
|
+
const watcher = workflow.watcher === undefined ? undefined : registries.watchers.get(workflow.watcher.name);
|
|
301
|
+
if (workflow.watcher !== undefined && watcher === undefined) {
|
|
302
|
+
throw new CliError(`workflow ${JSON.stringify(workflow.name)} uses unknown watcher ${JSON.stringify(workflow.watcher.name)}`);
|
|
303
|
+
}
|
|
304
|
+
const attention = workflow.attention === undefined
|
|
305
|
+
? undefined
|
|
306
|
+
: registries.attentionEmitters.get(workflow.attention.emitter);
|
|
307
|
+
if (workflow.attention !== undefined && attention === undefined) {
|
|
308
|
+
throw new CliError(`workflow ${JSON.stringify(workflow.name)} uses unknown attention emitter ${JSON.stringify(workflow.attention.emitter)}`);
|
|
309
|
+
}
|
|
310
|
+
try {
|
|
311
|
+
if (workflow.watcher !== undefined && watcher !== undefined) {
|
|
312
|
+
watcher.optionsSchema.parse(workflow.watcher.options);
|
|
313
|
+
}
|
|
314
|
+
if (workflow.attention !== undefined && attention !== undefined) {
|
|
315
|
+
attention.optionsSchema.parse(workflow.attention.options);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
catch (error) {
|
|
319
|
+
throw new CliError(`workflow ${JSON.stringify(workflow.name)} has invalid adapter parameters: ${message(error)}`, { cause: error });
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Which harnesses a workflow uses is a runtime decision now, so startup diagnostics are advisory:
|
|
325
|
+
* an unusable provider only fails the instance that actually calls it.
|
|
326
|
+
*/
|
|
327
|
+
async function reportAdapterDiagnostics(registries) {
|
|
328
|
+
const specs = [
|
|
329
|
+
...[...registries.harnesses.values()].map((spec) => ["harness", spec]),
|
|
330
|
+
...[...registries.watchers.values()].map((spec) => ["watcher", spec]),
|
|
331
|
+
...[...registries.emitters.values()].map((spec) => ["emitter", spec]),
|
|
332
|
+
...[...registries.attentionEmitters.values()].map((spec) => ["attention emitter", spec]),
|
|
333
|
+
...[...registries.channels.values()].map((spec) => ["channel", spec]),
|
|
334
|
+
];
|
|
335
|
+
for (const [kind, spec] of specs) {
|
|
336
|
+
const diagnostic = await spec.checkStartup?.();
|
|
337
|
+
if (diagnostic !== undefined)
|
|
338
|
+
log.warning(`${kind} ${JSON.stringify(spec.name)}: ${diagnostic}`);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Anything already open was started by an earlier process, so it is about to replay under a bundle
|
|
343
|
+
* it did not start on - the exact condition draining exists to prevent. loopy has no Workflow
|
|
344
|
+
* versioning, so it cannot make that safe; saying it out loud is what stops a skipped drain from
|
|
345
|
+
* being discovered later as a wedged Execution.
|
|
346
|
+
*/
|
|
347
|
+
async function reportUndrainedExecutions(visibility, repository) {
|
|
348
|
+
let open;
|
|
349
|
+
try {
|
|
350
|
+
open = await countOpenExecutions(visibility, repository);
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
// Advisory only. A Visibility store that cannot answer must not stop the deployment starting.
|
|
354
|
+
log.debug(`could not check for undrained Executions: ${message(error)}`);
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
if (open === 0)
|
|
358
|
+
return;
|
|
359
|
+
log.warning(`${open} Execution(s) were already open at startup: they will resume under this build. Drain before deploying an incompatible workflow edit.`);
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Configure logging, then report any config entry the environment took over. Settings load before
|
|
363
|
+
* the log level is known, so the override list travels on `Settings` and is announced here.
|
|
364
|
+
*/
|
|
365
|
+
function startLogging(settings, override) {
|
|
366
|
+
setupLogging((override ?? settings.logLevel));
|
|
367
|
+
for (const { variable, field } of settings.environmentOverrides) {
|
|
368
|
+
log.warning(`${variable} overrides ${field} from the config file`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
function withWorkflows(settings, workflows) {
|
|
372
|
+
return workflows === undefined ? settings : { ...settings, workflows: resolve(workflows) };
|
|
373
|
+
}
|
|
374
|
+
function message(error) {
|
|
375
|
+
return error instanceof Error ? error.message : String(error);
|
|
376
|
+
}
|
|
377
|
+
/* istanbul ignore next -- exercised by the built CLI smoke test, outside Vitest's process */
|
|
378
|
+
if (import.meta.url === pathToFileURL(process.argv[1] ?? "").href) {
|
|
379
|
+
// Take only the signals loopy drains on off the SDK, which would otherwise stop the Workers the
|
|
380
|
+
// moment one arrives; draining needs them still serving. The rest keep the SDK's own handling,
|
|
381
|
+
// so an unowned signal still shuts the Workers down and closes the connection.
|
|
382
|
+
Runtime.install({ shutdownSignals: ["SIGQUIT", "SIGUSR2"] });
|
|
383
|
+
await runExecutable(process.argv, DEFAULT_CLI_SERVICES);
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { AdapterRegistries, WatcherSpec } from "./adapters.js";
|
|
2
|
+
import { type JsonObject, type WatcherSnapshot, type WorkflowSpecSnapshot } from "./core/wire.js";
|
|
3
|
+
export interface PollConfig {
|
|
4
|
+
intervalSeconds: number;
|
|
5
|
+
}
|
|
6
|
+
export interface WatcherConfig {
|
|
7
|
+
type: string;
|
|
8
|
+
fields: JsonObject;
|
|
9
|
+
}
|
|
10
|
+
export interface AgentConfig {
|
|
11
|
+
id: string;
|
|
12
|
+
harness: string;
|
|
13
|
+
prompt?: string;
|
|
14
|
+
promptFile?: string;
|
|
15
|
+
model?: string;
|
|
16
|
+
modelEffort?: string;
|
|
17
|
+
timeoutSeconds: number;
|
|
18
|
+
outcome: string;
|
|
19
|
+
providerOptions: JsonObject;
|
|
20
|
+
}
|
|
21
|
+
export interface StepEntryConfig {
|
|
22
|
+
type: "step";
|
|
23
|
+
step: AgentConfig;
|
|
24
|
+
}
|
|
25
|
+
export interface BundleConfig {
|
|
26
|
+
type: "bundle";
|
|
27
|
+
id: string;
|
|
28
|
+
outcome: string;
|
|
29
|
+
steps: AgentConfig[];
|
|
30
|
+
}
|
|
31
|
+
export interface EffectConfig {
|
|
32
|
+
type: "effect";
|
|
33
|
+
id: string;
|
|
34
|
+
emitter: string;
|
|
35
|
+
action: JsonObject;
|
|
36
|
+
}
|
|
37
|
+
export type WorkflowEntryConfig = StepEntryConfig | BundleConfig | EffectConfig;
|
|
38
|
+
export interface WorkflowSpec {
|
|
39
|
+
watcher: WatcherConfig;
|
|
40
|
+
entries: WorkflowEntryConfig[];
|
|
41
|
+
}
|
|
42
|
+
interface WorkflowConfigValues {
|
|
43
|
+
poll: PollConfig;
|
|
44
|
+
repository: string;
|
|
45
|
+
defaultBranch: string;
|
|
46
|
+
harnesses: Record<string, JsonObject>;
|
|
47
|
+
workflows: Record<string, WorkflowSpec>;
|
|
48
|
+
}
|
|
49
|
+
export declare class WorkflowConfig {
|
|
50
|
+
readonly poll: PollConfig;
|
|
51
|
+
readonly repository: string;
|
|
52
|
+
readonly defaultBranch: string;
|
|
53
|
+
readonly harnesses: Readonly<Record<string, JsonObject>>;
|
|
54
|
+
readonly workflows: Readonly<Record<string, WorkflowSpec>>;
|
|
55
|
+
readonly sourceDirectory: string;
|
|
56
|
+
private readonly promptFiles;
|
|
57
|
+
private readonly outcomeSchemas;
|
|
58
|
+
constructor(values: WorkflowConfigValues, sourceDirectory: string);
|
|
59
|
+
resolveResource(value: string): string;
|
|
60
|
+
promptText(agent: AgentConfig): string;
|
|
61
|
+
outcomeSchema(value: string): JsonObject;
|
|
62
|
+
}
|
|
63
|
+
export declare function loadConfig(path: string): WorkflowConfig;
|
|
64
|
+
export declare function iterWorkflowAgents(workflow: WorkflowSpec): Generator<AgentConfig>;
|
|
65
|
+
export declare function iterWorkflowEmitters(workflow: WorkflowSpec): Generator<string>;
|
|
66
|
+
export declare function mergedHarnessOptions(config: WorkflowConfig, agent: AgentConfig): JsonObject;
|
|
67
|
+
export declare function workflowSpecSnapshot(config: WorkflowConfig, name: string, adapters: AdapterRegistries): WorkflowSpecSnapshot;
|
|
68
|
+
export declare function watcherSnapshot(workflow: WorkflowSpec, watchers: ReadonlyMap<string, WatcherSpec>): WatcherSnapshot;
|
|
69
|
+
export declare function validateWorkflow(config: WorkflowConfig, adapters: AdapterRegistries): string[];
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAA4B,WAAW,EAAE,MAAM,eAAe,CAAC;AAE9F,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,eAAe,EAEpB,KAAK,oBAAoB,EAG1B,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,YAAY,GAAG,YAAY,CAAC;AAEhF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC;AAiED,qBAAa,cAAc;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IACzD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAEhE,YAAY,MAAM,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,EAOhE;IAED,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErC;IAED,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAQrC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAOvC;CACF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAuCvD;AAED,wBAAiB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC,CAKlF;AAED,wBAAiB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAI/E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,GAAG,UAAU,CAQ3F;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,GAC1B,oBAAoB,CAStB;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,GACzC,eAAe,CASjB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAY9F"}
|