@aicalas/loopy 0.2.0 → 0.2.1

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 (75) hide show
  1. package/README.md +213 -38
  2. package/dist/adapters.d.ts +2 -0
  3. package/dist/adapters.d.ts.map +1 -1
  4. package/dist/adapters.js.map +1 -1
  5. package/dist/authoring/effect-config.d.ts +2 -2
  6. package/dist/authoring/effect-config.d.ts.map +1 -1
  7. package/dist/authoring/effect-config.js +2 -2
  8. package/dist/authoring/effect-config.js.map +1 -1
  9. package/dist/authoring/types.d.ts +5 -0
  10. package/dist/authoring/types.d.ts.map +1 -1
  11. package/dist/cli-help.d.ts +1 -11
  12. package/dist/cli-help.d.ts.map +1 -1
  13. package/dist/cli-help.js +184 -134
  14. package/dist/cli-help.js.map +1 -1
  15. package/dist/cli.d.ts +2 -3
  16. package/dist/cli.d.ts.map +1 -1
  17. package/dist/cli.js +10 -46
  18. package/dist/cli.js.map +1 -1
  19. package/dist/core/calls.d.ts +3 -1
  20. package/dist/core/calls.d.ts.map +1 -1
  21. package/dist/core/calls.js +7 -2
  22. package/dist/core/calls.js.map +1 -1
  23. package/dist/core/prompts.d.ts +8 -0
  24. package/dist/core/prompts.d.ts.map +1 -0
  25. package/dist/core/prompts.js +59 -0
  26. package/dist/core/prompts.js.map +1 -0
  27. package/dist/core/wire.d.ts +13 -4
  28. package/dist/core/wire.d.ts.map +1 -1
  29. package/dist/core/wire.js +29 -8
  30. package/dist/core/wire.js.map +1 -1
  31. package/dist/harnesses/claude.d.ts.map +1 -1
  32. package/dist/harnesses/claude.js +10 -1
  33. package/dist/harnesses/claude.js.map +1 -1
  34. package/dist/harnesses/codex-app-server.d.ts +29 -0
  35. package/dist/harnesses/codex-app-server.d.ts.map +1 -0
  36. package/dist/harnesses/codex-app-server.js +166 -0
  37. package/dist/harnesses/codex-app-server.js.map +1 -0
  38. package/dist/harnesses/codex.d.ts.map +1 -1
  39. package/dist/harnesses/codex.js +34 -7
  40. package/dist/harnesses/codex.js.map +1 -1
  41. package/dist/harnesses/opencode.d.ts.map +1 -1
  42. package/dist/harnesses/opencode.js +1 -0
  43. package/dist/harnesses/opencode.js.map +1 -1
  44. package/dist/harnesses/probe.d.ts +5 -0
  45. package/dist/harnesses/probe.d.ts.map +1 -0
  46. package/dist/harnesses/probe.js +53 -0
  47. package/dist/harnesses/probe.js.map +1 -0
  48. package/dist/temporal/activities.d.ts.map +1 -1
  49. package/dist/temporal/activities.js +50 -10
  50. package/dist/temporal/activities.js.map +1 -1
  51. package/dist/temporal/contracts.d.ts +1 -1
  52. package/dist/temporal/contracts.d.ts.map +1 -1
  53. package/dist/temporal/contracts.js +1 -1
  54. package/dist/temporal/contracts.js.map +1 -1
  55. package/dist/temporal/handle.d.ts.map +1 -1
  56. package/dist/temporal/handle.js +23 -4
  57. package/dist/temporal/handle.js.map +1 -1
  58. package/dist/temporal/metadata.d.ts +7 -0
  59. package/dist/temporal/metadata.d.ts.map +1 -0
  60. package/dist/temporal/metadata.js +44 -0
  61. package/dist/temporal/metadata.js.map +1 -0
  62. package/dist/temporal/observe.d.ts +15 -2
  63. package/dist/temporal/observe.d.ts.map +1 -1
  64. package/dist/temporal/observe.js +7 -2
  65. package/dist/temporal/observe.js.map +1 -1
  66. package/dist/temporal/supervisor.d.ts +3 -1
  67. package/dist/temporal/supervisor.d.ts.map +1 -1
  68. package/dist/temporal/supervisor.js +31 -7
  69. package/dist/temporal/supervisor.js.map +1 -1
  70. package/dist/temporal/worker.d.ts.map +1 -1
  71. package/dist/temporal/worker.js +1 -0
  72. package/dist/temporal/worker.js.map +1 -1
  73. package/dist/version.d.ts +1 -1
  74. package/dist/version.js +1 -1
  75. package/package.json +1 -1
@@ -0,0 +1,29 @@
1
+ export interface CodexStoredItem {
2
+ type: string;
3
+ text?: string;
4
+ content?: Array<{
5
+ type?: string;
6
+ text?: string;
7
+ }>;
8
+ }
9
+ export interface CodexStoredTurn {
10
+ status: "completed" | "interrupted" | "failed" | "inProgress";
11
+ items: CodexStoredItem[];
12
+ }
13
+ export interface CodexStoredThread {
14
+ id: string;
15
+ cwd: string;
16
+ status: {
17
+ type: "notLoaded" | "idle" | "systemError" | "active";
18
+ };
19
+ turns: CodexStoredTurn[];
20
+ }
21
+ export interface CodexSessionReader {
22
+ get(threadId: string, signal?: AbortSignal): Promise<CodexStoredThread | undefined>;
23
+ list(workspace: string, signal?: AbortSignal): Promise<CodexStoredThread[]>;
24
+ }
25
+ export declare class CodexAppServerSessionReader implements CodexSessionReader {
26
+ get(threadId: string, signal?: AbortSignal): Promise<CodexStoredThread | undefined>;
27
+ list(workspace: string, signal?: AbortSignal): Promise<CodexStoredThread[]>;
28
+ }
29
+ //# sourceMappingURL=codex-app-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-app-server.d.ts","sourceRoot":"","sources":["../../src/harnesses/codex-app-server.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC9D,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QAAE,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAA;KAAE,CAAC;IAClE,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;IACpF,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;CAC7E;AAED,qBAAa,2BAA4B,YAAW,kBAAkB;IAC9D,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAQxF;IAEK,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAgChF;CACF"}
@@ -0,0 +1,166 @@
1
+ /* istanbul ignore file -- production Codex app-server process bridge; harness tests inject the reader contract */
2
+ import { spawn } from "node:child_process";
3
+ import { createRequire } from "node:module";
4
+ import { createInterface } from "node:readline";
5
+ import { fileURLToPath } from "node:url";
6
+ export class CodexAppServerSessionReader {
7
+ async get(threadId, signal) {
8
+ try {
9
+ const result = await request("thread/read", { threadId, includeTurns: true }, signal);
10
+ return threadFromResponse(result);
11
+ }
12
+ catch (error) {
13
+ if (isMissingThreadError(error))
14
+ return undefined;
15
+ throw error;
16
+ }
17
+ }
18
+ async list(workspace, signal) {
19
+ return withAppServer(async (call) => {
20
+ const threads = [];
21
+ let cursor = null;
22
+ do {
23
+ const result = await call("thread/list", {
24
+ cwd: workspace,
25
+ cursor,
26
+ limit: 100,
27
+ sourceKinds: ["exec"],
28
+ sortKey: "updated_at",
29
+ sortDirection: "desc",
30
+ });
31
+ if (!isRecord(result) || !Array.isArray(result.data)) {
32
+ throw new Error("Codex app-server returned an invalid thread/list response");
33
+ }
34
+ for (const item of result.data) {
35
+ if (!isRecord(item) || typeof item.id !== "string")
36
+ continue;
37
+ try {
38
+ threads.push(threadFromResponse(await call("thread/read", { threadId: item.id, includeTurns: true })));
39
+ }
40
+ catch (error) {
41
+ if (!isMissingThreadError(error))
42
+ throw error;
43
+ }
44
+ }
45
+ cursor = result.nextCursor === null ? null : expectOptionalString(result.nextCursor);
46
+ } while (cursor !== null);
47
+ return threads;
48
+ }, signal);
49
+ }
50
+ }
51
+ class CodexRpcError extends Error {
52
+ code;
53
+ constructor(code, message) {
54
+ super(message);
55
+ this.code = code;
56
+ }
57
+ }
58
+ async function request(method, params, signal) {
59
+ return withAppServer((call) => call(method, params), signal);
60
+ }
61
+ async function withAppServer(operation, signal) {
62
+ const child = spawn(process.execPath, [codexLauncher(), "app-server", "--stdio"], {
63
+ stdio: ["pipe", "pipe", "pipe"],
64
+ });
65
+ const stderr = [];
66
+ child.stderr.on("data", (chunk) => stderr.push(chunk));
67
+ const lines = createInterface({ input: child.stdout, crlfDelay: Infinity });
68
+ const pending = new Map();
69
+ const rejectPending = (error) => {
70
+ for (const request of pending.values())
71
+ request.reject(error);
72
+ pending.clear();
73
+ };
74
+ child.once("error", rejectPending);
75
+ child.once("exit", (code, exitSignal) => {
76
+ rejectPending(new Error(`Codex app-server exited before replying (${code ?? exitSignal ?? "unknown"}): ${Buffer.concat(stderr).toString("utf8").slice(-500)}`));
77
+ });
78
+ const reader = (async () => {
79
+ try {
80
+ for await (const line of lines) {
81
+ let message;
82
+ try {
83
+ message = JSON.parse(line);
84
+ }
85
+ catch {
86
+ continue;
87
+ }
88
+ if (!isRecord(message) || typeof message.id !== "number")
89
+ continue;
90
+ const request = pending.get(message.id);
91
+ if (request === undefined)
92
+ continue;
93
+ pending.delete(message.id);
94
+ if (isRecord(message.error)) {
95
+ request.reject(new CodexRpcError(typeof message.error.code === "number" ? message.error.code : -1, typeof message.error.message === "string"
96
+ ? message.error.message
97
+ : "Codex RPC failed"));
98
+ }
99
+ else {
100
+ request.resolve(message.result);
101
+ }
102
+ }
103
+ }
104
+ catch (error) {
105
+ rejectPending(error);
106
+ }
107
+ })();
108
+ const call = (id, callMethod, callParams) => new Promise((resolve, reject) => {
109
+ pending.set(id, { resolve, reject });
110
+ child.stdin.write(`${JSON.stringify({ id, method: callMethod, params: callParams })}\n`);
111
+ });
112
+ const aborted = Promise.withResolvers();
113
+ const onAbort = () => aborted.reject(signal?.reason ?? new DOMException("aborted", "AbortError"));
114
+ signal?.addEventListener("abort", onAbort, { once: true });
115
+ if (signal?.aborted === true)
116
+ onAbort();
117
+ const deadline = setTimeout(() => aborted.reject(new Error("Codex app-server request timed out")), 20_000);
118
+ deadline.unref();
119
+ try {
120
+ await Promise.race([
121
+ call(1, "initialize", {
122
+ clientInfo: { name: "loopy", version: "0.2.0" },
123
+ capabilities: { experimentalApi: true },
124
+ }),
125
+ aborted.promise,
126
+ ]);
127
+ child.stdin.write(`${JSON.stringify({ method: "initialized", params: {} })}\n`);
128
+ let nextId = 2;
129
+ const invoke = (method, params) => call(nextId++, method, params);
130
+ return await Promise.race([operation(invoke), aborted.promise]);
131
+ }
132
+ finally {
133
+ clearTimeout(deadline);
134
+ signal?.removeEventListener("abort", onAbort);
135
+ lines.close();
136
+ child.stdin.end();
137
+ child.kill();
138
+ await reader;
139
+ }
140
+ }
141
+ function codexLauncher() {
142
+ const sdkEntry = fileURLToPath(import.meta.resolve("@openai/codex-sdk"));
143
+ return createRequire(sdkEntry).resolve("@openai/codex/bin/codex.js");
144
+ }
145
+ function threadFromResponse(value) {
146
+ if (!isRecord(value) || !isRecord(value.thread)) {
147
+ throw new Error("Codex app-server returned an invalid thread/read response");
148
+ }
149
+ return value.thread;
150
+ }
151
+ function isRecord(value) {
152
+ return typeof value === "object" && value !== null && !Array.isArray(value);
153
+ }
154
+ function isMissingThreadError(error) {
155
+ return (error instanceof CodexRpcError &&
156
+ /not found|no rollout|unknown thread|thread not loaded/i.test(error.message));
157
+ }
158
+ function expectOptionalString(value) {
159
+ if (value === undefined || value === null)
160
+ return null;
161
+ if (typeof value !== "string") {
162
+ throw new Error("Codex app-server returned an invalid thread/list cursor");
163
+ }
164
+ return value;
165
+ }
166
+ //# sourceMappingURL=codex-app-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-app-server.js","sourceRoot":"","sources":["../../src/harnesses/codex-app-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/harnesses/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,MAAM,EACX,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,KAAK,OAAO,EAMZ,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;kBAQpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,UAAU,WAAW;IACnB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IAC7C,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CAC3D;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC;AAE7C,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,YACE,OAAO,EAAE,YAAY,EAErB,aAAa,GAAE,YAAgC,EAKhD;IAED,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAExD;CACF;AA2FD,eAAO,MAAM,gBAAgB,EAAE,WAM9B,CAAC"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/harnesses/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EAEX,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,KAAK,OAAO,EAMZ,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;kBAQpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,UAAU,WAAW;IACnB,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IAC7C,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CAC3D;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC;AAE7C,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,YACE,OAAO,EAAE,YAAY,EAErB,aAAa,GAAE,YAAgC,EAKhD;IAED,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAExD;CACF;AAkHD,eAAO,MAAM,gBAAgB,EAAE,WAM9B,CAAC"}
@@ -82,9 +82,30 @@ class CodexAdapter {
82
82
  this.activeController = controller;
83
83
  const onAbort = () => controller.abort(signal?.reason);
84
84
  signal?.addEventListener("abort", onAbort, { once: true });
85
- let result;
85
+ let finalResponse = "";
86
+ let usage;
86
87
  try {
87
- result = await this.thread.run(prompt, { outputSchema: schema, signal: controller.signal });
88
+ const { events } = await this.thread.runStreamed(prompt, {
89
+ outputSchema: schema,
90
+ signal: controller.signal,
91
+ });
92
+ for await (const event of events) {
93
+ if (event.type === "thread.started") {
94
+ this.recordSession(event.thread_id);
95
+ }
96
+ else if (event.type === "item.completed" && event.item.type === "agent_message") {
97
+ finalResponse = event.item.text;
98
+ }
99
+ else if (event.type === "turn.completed") {
100
+ usage = event.usage;
101
+ }
102
+ else if (event.type === "turn.failed") {
103
+ throw new Error(event.error.message);
104
+ }
105
+ else if (event.type === "error") {
106
+ throw new Error(event.message);
107
+ }
108
+ }
88
109
  }
89
110
  catch (error) {
90
111
  if (controller.signal.aborted || signal?.aborted || isAbortError(error))
@@ -97,16 +118,22 @@ class CodexAdapter {
97
118
  signal?.removeEventListener("abort", onAbort);
98
119
  this.activeController = undefined;
99
120
  }
100
- const turn = { text: result.finalResponse };
121
+ const turn = { text: finalResponse };
101
122
  if (this.thread.id !== null) {
102
- this.sessionId = this.thread.id;
123
+ this.recordSession(this.thread.id);
103
124
  turn.sessionId = this.thread.id;
104
125
  }
105
- const usage = jsonObject(result.usage, "Codex usage");
106
- if (usage !== undefined)
107
- turn.usage = usage;
126
+ const normalizedUsage = jsonObject(usage, "Codex usage");
127
+ if (normalizedUsage !== undefined)
128
+ turn.usage = normalizedUsage;
108
129
  return turn;
109
130
  }
131
+ recordSession(sessionId) {
132
+ if (sessionId === this.sessionId)
133
+ return;
134
+ this.sessionId = sessionId;
135
+ this.context.checkpointSession?.(sessionId);
136
+ }
110
137
  }
111
138
  export const codexHarnessSpec = {
112
139
  name: "codex",
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/harnesses/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/harnesses/codex.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/harnesses/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,KAAK,OAAO,EAMZ,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,oBAAoB,YAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAU,CAAC;AACxD,eAAO,MAAM,yBAAyB,QAAiC,CAAC;AAGxE,eAAO,MAAM,qBAAqB;;;kBAKvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,UAAU,eAAe;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE;QAAE,KAAK,IAAI,IAAI,CAAA;KAAE,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAE/B,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAE1C,YACE,OAAO,EAAE,eAAe,EAExB,OAAO,GAAE,eAAmC,EAK7C;IAED,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAExD;CACF;AA4HD,wBAAgB,oBAAoB,CAElC,GAAG,GAAE,OAAO,SAAqB,GAChC,MAAM,GAAG,SAAS,CAuBpB;AA6BD,eAAO,MAAM,mBAAmB,EAAE,WAOjC,CAAC"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/harnesses/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,KAAK,OAAO,EAMZ,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,eAAO,MAAM,oBAAoB,YAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAU,CAAC;AACxD,eAAO,MAAM,yBAAyB,QAAiC,CAAC;AAGxE,eAAO,MAAM,qBAAqB;;;kBAKvB,CAAC;AAEZ,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,UAAU,eAAe;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE;QAAE,KAAK,IAAI,IAAI,CAAA;KAAE,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;AAE/B,qBAAa,eAAgB,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAE1C,YACE,OAAO,EAAE,eAAe,EAExB,OAAO,GAAE,eAAmC,EAK7C;IAED,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAExD;CACF;AA6HD,wBAAgB,oBAAoB,CAElC,GAAG,GAAE,OAAO,SAAqB,GAChC,MAAM,GAAG,SAAS,CAuBpB;AA6BD,eAAO,MAAM,mBAAmB,EAAE,WAOjC,CAAC"}
@@ -53,6 +53,7 @@ class OpenCodeAdapter {
53
53
  const created = await this.runtime.client.session.create({ directory: this.context.workspace, title: `loopy:${this.context.agentId}` }, { throwOnError: true });
54
54
  this.sessionId = created.data.id;
55
55
  }
56
+ this.context.checkpointSession?.(this.sessionId);
56
57
  return await this.prompt(prompt, schema, signal);
57
58
  }
58
59
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/harnesses/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/harnesses/opencode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function containsMarker(value: unknown, marker: string): boolean;
2
+ export declare function textFromUnknown(value: unknown): string | undefined;
3
+ export declare function structuredFromUnknown(value: unknown): unknown;
4
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
5
+ //# sourceMappingURL=probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/harnesses/probe.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKtE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAalE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAgB7D;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE"}
@@ -0,0 +1,53 @@
1
+ export function containsMarker(value, marker) {
2
+ if (typeof value === "string")
3
+ return value.includes(marker);
4
+ if (Array.isArray(value))
5
+ return value.some((item) => containsMarker(item, marker));
6
+ if (!isRecord(value))
7
+ return false;
8
+ return Object.values(value).some((item) => containsMarker(item, marker));
9
+ }
10
+ export function textFromUnknown(value) {
11
+ if (typeof value === "string")
12
+ return value;
13
+ if (Array.isArray(value)) {
14
+ const text = value
15
+ .map(textFromUnknown)
16
+ .filter((item) => item !== undefined)
17
+ .join("\n");
18
+ return text.length === 0 ? undefined : text;
19
+ }
20
+ if (!isRecord(value))
21
+ return undefined;
22
+ if (typeof value.text === "string")
23
+ return value.text;
24
+ if (value.content !== undefined)
25
+ return textFromUnknown(value.content);
26
+ return undefined;
27
+ }
28
+ export function structuredFromUnknown(value) {
29
+ if (Array.isArray(value)) {
30
+ for (let index = value.length - 1; index >= 0; index -= 1) {
31
+ const found = structuredFromUnknown(value[index]);
32
+ if (found !== undefined)
33
+ return found;
34
+ }
35
+ return undefined;
36
+ }
37
+ if (!isRecord(value))
38
+ return undefined;
39
+ if (value.structured_output !== undefined)
40
+ return value.structured_output;
41
+ if (value.structured !== undefined)
42
+ return value.structured;
43
+ for (const child of Object.values(value)) {
44
+ const found = structuredFromUnknown(child);
45
+ if (found !== undefined)
46
+ return found;
47
+ }
48
+ return undefined;
49
+ }
50
+ export function isRecord(value) {
51
+ return typeof value === "object" && value !== null && !Array.isArray(value);
52
+ }
53
+ //# sourceMappingURL=probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/harnesses/probe.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,MAAc;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,KAAK;aACf,GAAG,CAAC,eAAe,CAAC;aACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;aACpC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAClD,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,iBAAiB,CAAC;IAC1E,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"activities.d.ts","sourceRoot":"","sources":["../../src/temporal/activities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activities.d.ts","sourceRoot":"","sources":["../../src/temporal/activities.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import { readFileSync } from "node:fs";
2
2
  import { isAbsolute, join, relative, resolve } from "node:path";
3
3
  import { ApplicationFailure, CancelledFailure, Context } from "@temporalio/activity";
4
4
  import { EmitterPermanentError, } from "../adapters.js";
5
- import { assertIdentifier } from "../core/calls.js";
5
+ import { assertIdentifier, temporalWorkflowShowCommand } from "../core/calls.js";
6
+ import { interpolatePromptTemplate } from "../core/prompts.js";
6
7
  import { parseAttentionEmitResult, parseCleanupWorkspaceInput, parseDeliverQuestionInput, parseEffectResult, parseEmitAttentionInput, parseObserveInstancesInput, parseRunAgentInput, parseRunEffectInput, parseRunWatcherInput, triggerReference, } from "../core/wire.js";
7
8
  import { HarnessError } from "../harnesses/base.js";
8
9
  import { candidateDigest } from "../identifiers.js";
@@ -94,7 +95,13 @@ export class AgentActivities {
94
95
  };
95
96
  }
96
97
  async deliverQuestion(input) {
97
- const request = parseDeliverQuestionInput(input);
98
+ let request;
99
+ try {
100
+ request = parseDeliverQuestionInput(input);
101
+ }
102
+ catch (error) {
103
+ throw ApplicationFailure.nonRetryable(reason("configuration", error), AGENT_CONFIGURATION_FAILURE_TYPE);
104
+ }
98
105
  this.assertRepository(request.repository);
99
106
  const spec = this.channels.get(request.channel);
100
107
  if (spec === undefined) {
@@ -107,7 +114,13 @@ export class AgentActivities {
107
114
  catch (error) {
108
115
  throw ApplicationFailure.nonRetryable(`invalid ${request.channel} channel options: ${errorMessage(error)}`, AGENT_CONFIGURATION_FAILURE_TYPE);
109
116
  }
110
- const question = this.renderPrompt(request.promptParts);
117
+ let question;
118
+ try {
119
+ question = this.renderPrompt(request.promptParts);
120
+ }
121
+ catch (error) {
122
+ throw ApplicationFailure.nonRetryable(reason("configuration", error), AGENT_CONFIGURATION_FAILURE_TYPE);
123
+ }
111
124
  try {
112
125
  const result = await spec.deliver({
113
126
  options,
@@ -140,7 +153,7 @@ export class AgentActivities {
140
153
  triggerRef: triggerReference(instance.input.trigger),
141
154
  reason: "workflow-task-failing",
142
155
  occurredAt: new Date().toISOString(),
143
- suggestedCommands: [`loopy status ${instance.workflowId}`],
156
+ suggestedCommands: [temporalWorkflowShowCommand(instance.workflowId)],
144
157
  };
145
158
  try {
146
159
  const { spec, options } = this.resolveAttentionEmitter(instance.input.attention.emitter, instance.input.attention.options);
@@ -194,17 +207,38 @@ export class AgentActivities {
194
207
  }
195
208
  async runAgent(input) {
196
209
  const runtime = this.contextProvider();
197
- runtime.heartbeat();
198
- const heartbeat = setInterval(() => runtime.heartbeat(), HEARTBEAT_INTERVAL_MS);
210
+ let heartbeatDetails;
211
+ const sendHeartbeat = () => {
212
+ if (heartbeatDetails === undefined)
213
+ runtime.heartbeat();
214
+ else
215
+ runtime.heartbeat(heartbeatDetails);
216
+ };
217
+ sendHeartbeat();
218
+ const heartbeat = setInterval(sendHeartbeat, HEARTBEAT_INTERVAL_MS);
199
219
  heartbeat.unref();
200
220
  try {
201
- return await this.runAgentInner(parseRunAgentInput(input), runtime);
221
+ let request;
222
+ try {
223
+ request = parseRunAgentInput(input);
224
+ }
225
+ catch (error) {
226
+ throw ApplicationFailure.nonRetryable(reason("configuration", error), AGENT_CONFIGURATION_FAILURE_TYPE);
227
+ }
228
+ if (request.resumeSessionId !== undefined) {
229
+ heartbeatDetails = { sessionId: request.resumeSessionId };
230
+ sendHeartbeat();
231
+ }
232
+ return await this.runAgentInner(request, runtime, (sessionId) => {
233
+ heartbeatDetails = { sessionId };
234
+ sendHeartbeat();
235
+ });
202
236
  }
203
237
  finally {
204
238
  clearInterval(heartbeat);
205
239
  }
206
240
  }
207
- async runAgentInner(request, runtime) {
241
+ async runAgentInner(request, runtime, checkpointSession) {
208
242
  this.assertRepository(request.repository);
209
243
  const spec = this.harnesses.get(request.harness);
210
244
  if (spec === undefined) {
@@ -239,13 +273,17 @@ export class AgentActivities {
239
273
  ...(request.resumeSessionId === undefined
240
274
  ? {}
241
275
  : { resumeSessionId: request.resumeSessionId }),
276
+ checkpointSession,
242
277
  };
243
278
  }
244
279
  catch (error) {
245
280
  log.error(`${request.handleId}: invalid agent Activity configuration`, error);
246
281
  throw ApplicationFailure.nonRetryable(reason("configuration", error), AGENT_CONFIGURATION_FAILURE_TYPE);
247
282
  }
248
- return invokeHarness(harness, context, request.handleId, request.timeoutSeconds, runtime);
283
+ const result = await invokeHarness(harness, context, request.handleId, request.timeoutSeconds, runtime);
284
+ if (result.sessionId !== undefined)
285
+ checkpointSession(result.sessionId);
286
+ return result;
249
287
  }
250
288
  assertRepository(repository) {
251
289
  if (repository === this.repository)
@@ -265,7 +303,9 @@ export class AgentActivities {
265
303
  }
266
304
  renderPrompt(parts) {
267
305
  return parts
268
- .map((part) => (typeof part === "string" ? part : this.readPromptFile(part.file)))
306
+ .map((part) => typeof part === "string"
307
+ ? part
308
+ : interpolatePromptTemplate(this.readPromptFile(part.file), part.values))
269
309
  .join("\n");
270
310
  }
271
311
  readPromptFile(file) {