@letta-ai/letta-code 0.31.6 → 0.31.7
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/mcp-client.js +2 -2
- package/dist/mcp-client.js.map +1 -1
- package/dist/types/backend/backend.d.ts +7 -0
- package/dist/types/backend/backend.d.ts.map +1 -1
- package/dist/types/utils/secrets-store.d.ts +4 -0
- package/dist/types/utils/secrets-store.d.ts.map +1 -1
- package/letta.js +18 -14
- package/package.json +1 -1
- package/scripts/agent-watch/verify-pr-identity.test.ts +97 -0
- package/scripts/agent-watch/verify-pr-identity.ts +119 -0
- package/scripts/builtin-skills-watch/aggregate-results.ts +13 -8
- package/scripts/builtin-skills-watch/evidence.test.ts +61 -17
- package/scripts/builtin-skills-watch/evidence.ts +66 -38
- package/scripts/builtin-skills-watch/finalize-result.test.ts +125 -0
- package/scripts/builtin-skills-watch/finalize-result.ts +44 -0
- package/scripts/builtin-skills-watch/reconcile-results.test.ts +58 -0
- package/scripts/builtin-skills-watch/reconcile-results.ts +311 -0
- package/scripts/builtin-skills-watch/result-artifacts.test.ts +83 -0
- package/scripts/builtin-skills-watch/result-artifacts.ts +160 -0
- package/scripts/builtin-skills-watch/update-tracker.test.ts +17 -1
- package/scripts/builtin-skills-watch/update-tracker.ts +89 -15
- package/scripts/claude-watch/update-tracker.test.ts +30 -0
- package/scripts/claude-watch/update-tracker.ts +19 -5
- package/scripts/codex-watch/update-tracker.test.ts +28 -0
- package/scripts/codex-watch/update-tracker.ts +59 -7
- package/skills/letta-guide/SKILL.md +6 -2
|
@@ -75,12 +75,18 @@ export interface BackendCapabilities {
|
|
|
75
75
|
localModelCatalog: boolean;
|
|
76
76
|
localMemfs: boolean;
|
|
77
77
|
}
|
|
78
|
+
export interface AgentSecret {
|
|
79
|
+
key: string;
|
|
80
|
+
value: string;
|
|
81
|
+
}
|
|
78
82
|
export interface Backend {
|
|
79
83
|
readonly capabilities: BackendCapabilities;
|
|
80
84
|
retrieveAgent(agentId: string, options?: AgentRetrieveOptions): Promise<Awaited<ReturnType<APIClient["agents"]["retrieve"]>>>;
|
|
81
85
|
listAgents(body?: AgentListBody): Promise<Awaited<ReturnType<APIClient["agents"]["list"]>>>;
|
|
82
86
|
deleteAgent(agentId: string, options?: AgentDeleteOptions): Promise<Awaited<ReturnType<APIClient["agents"]["delete"]>>>;
|
|
83
87
|
updateAgent(agentId: string, body: AgentUpdateBody, options?: AgentUpdateOptions): Promise<Awaited<ReturnType<APIClient["agents"]["update"]>>>;
|
|
88
|
+
/** Optional until every backend supports server-backed agent secrets. */
|
|
89
|
+
listAgentSecrets?(agentId: string): Promise<AgentSecret[]>;
|
|
84
90
|
createAgent(body: AgentCreateBody, options?: AgentCreateOptions): Promise<Awaited<ReturnType<APIClient["agents"]["create"]>>>;
|
|
85
91
|
retrieveConversation(conversationId: string, options?: ConversationRetrieveOptions): Promise<Awaited<ReturnType<APIClient["conversations"]["retrieve"]>>>;
|
|
86
92
|
listConversations(body?: ConversationListBody): Promise<Awaited<ReturnType<APIClient["conversations"]["list"]>>>;
|
|
@@ -115,6 +121,7 @@ export declare class APIBackend implements Backend {
|
|
|
115
121
|
constructor(deps?: APIBackendDeps);
|
|
116
122
|
private getClient;
|
|
117
123
|
retrieveAgent(agentId: string, options?: AgentRetrieveOptions): Promise<import("@letta-ai/letta-client/resources/index.mjs").AgentState>;
|
|
124
|
+
listAgentSecrets(agentId: string): Promise<AgentSecret[]>;
|
|
118
125
|
listAgents(body?: AgentListBody): Promise<import("@letta-ai/letta-client/resources/index.mjs").AgentStatesArrayPage>;
|
|
119
126
|
deleteAgent(agentId: string, options?: AgentDeleteOptions): Promise<unknown>;
|
|
120
127
|
updateAgent(agentId: string, body: AgentUpdateBody, options?: AgentUpdateOptions): Promise<import("@letta-ai/letta-client/resources/index.mjs").AgentState>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/backend/backend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../../src/backend/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@ type SecretsBackend = {
|
|
|
9
9
|
capabilities: {
|
|
10
10
|
serverSecrets: boolean;
|
|
11
11
|
};
|
|
12
|
+
listAgentSecrets?: (agentId: string) => Promise<Array<{
|
|
13
|
+
key?: string;
|
|
14
|
+
value?: string;
|
|
15
|
+
}>>;
|
|
12
16
|
retrieveAgent: (agentId: string, options?: {
|
|
13
17
|
include?: string[];
|
|
14
18
|
}) => Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets-store.d.ts","sourceRoot":"","sources":["../../../src/utils/secrets-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;IACzC,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAC7B,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC3E,WAAW,EAAE,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KACtC,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7D,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD,CAAC;AAKF,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,cAAc,GAAG,IAAI,GAC7B,IAAI,CAEN;AAED,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,kBAAkB,GAAG,IAAI,GACjC,IAAI,CAEN;AA6SD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CAAE,GACzE,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"secrets-store.d.ts","sourceRoot":"","sources":["../../../src/utils/secrets-store.ts"],"names":[],"mappings":"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"}
|
package/letta.js
CHANGED
|
@@ -5509,7 +5509,7 @@ var package_default;
|
|
|
5509
5509
|
var init_package = __esm(() => {
|
|
5510
5510
|
package_default = {
|
|
5511
5511
|
name: "@letta-ai/letta-code",
|
|
5512
|
-
version: "0.31.
|
|
5512
|
+
version: "0.31.7",
|
|
5513
5513
|
description: "Letta Code is a CLI tool for interacting with stateful Letta agents from the terminal.",
|
|
5514
5514
|
type: "module",
|
|
5515
5515
|
packageManager: "bun@1.3.10",
|
|
@@ -84427,7 +84427,7 @@ function scheduleManagedSystemPromptUpdate({
|
|
|
84427
84427
|
debugLog("startup", `Updated managed system prompt ${decision.prompt.preset}@${decision.prompt.version}: ${decision.reason}`);
|
|
84428
84428
|
if (onUpdated) {
|
|
84429
84429
|
const updatedAgent = await getBackend().retrieveAgent(agent.id, {
|
|
84430
|
-
include: ["agent.
|
|
84430
|
+
include: ["agent.tools", "agent.tags"]
|
|
84431
84431
|
});
|
|
84432
84432
|
onUpdated(updatedAgent);
|
|
84433
84433
|
}
|
|
@@ -84687,7 +84687,7 @@ async function updateAgentLLMConfig(agentId, modelHandle, updateArgs, options) {
|
|
|
84687
84687
|
...maxTokens !== undefined && { max_tokens: maxTokens }
|
|
84688
84688
|
});
|
|
84689
84689
|
const finalAgent = await backend.retrieveAgent(agentId, {
|
|
84690
|
-
include: ["agent.
|
|
84690
|
+
include: ["agent.tools", "agent.tags"]
|
|
84691
84691
|
});
|
|
84692
84692
|
return finalAgent;
|
|
84693
84693
|
}
|
|
@@ -84839,7 +84839,7 @@ async function updateAgentSystemPrompt(agentId, systemPromptId) {
|
|
|
84839
84839
|
}
|
|
84840
84840
|
}
|
|
84841
84841
|
const agent = await backend.retrieveAgent(agentId, {
|
|
84842
|
-
include: ["agent.
|
|
84842
|
+
include: ["agent.tools", "agent.tags"]
|
|
84843
84843
|
});
|
|
84844
84844
|
return {
|
|
84845
84845
|
success: true,
|
|
@@ -87711,12 +87711,12 @@ async function initSecretsFromServer(agentId, cachedAgent) {
|
|
|
87711
87711
|
setCache(agentId, {});
|
|
87712
87712
|
return;
|
|
87713
87713
|
}
|
|
87714
|
-
const
|
|
87714
|
+
const agentSecrets = cachedAgent?.secrets ?? (backend.listAgentSecrets ? await backend.listAgentSecrets(agentId) : (await backend.retrieveAgent(agentId, {
|
|
87715
87715
|
include: ["agent.secrets"]
|
|
87716
|
-
});
|
|
87716
|
+
})).secrets);
|
|
87717
87717
|
const secrets2 = {};
|
|
87718
|
-
if (
|
|
87719
|
-
for (const env2 of
|
|
87718
|
+
if (Array.isArray(agentSecrets)) {
|
|
87719
|
+
for (const env2 of agentSecrets) {
|
|
87720
87720
|
if (env2.key && env2.value) {
|
|
87721
87721
|
secrets2[env2.key] = env2.value;
|
|
87722
87722
|
}
|
|
@@ -135486,6 +135486,10 @@ class APIBackend {
|
|
|
135486
135486
|
const client = await this.getClient();
|
|
135487
135487
|
return client.agents.retrieve(agentId, options);
|
|
135488
135488
|
}
|
|
135489
|
+
async listAgentSecrets(agentId) {
|
|
135490
|
+
const client = await this.getClient();
|
|
135491
|
+
return client.get(`/v1/agents/${encodeURIComponent(agentId)}/secrets`);
|
|
135492
|
+
}
|
|
135489
135493
|
async listAgents(body) {
|
|
135490
135494
|
const client = await this.getClient();
|
|
135491
135495
|
return client.agents.list(body);
|
|
@@ -444702,7 +444706,7 @@ var init_mcp_client = __esm(() => {
|
|
|
444702
444706
|
init_streamableHttp();
|
|
444703
444707
|
DEFAULT_CLIENT_INFO = {
|
|
444704
444708
|
name: "letta-code",
|
|
444705
|
-
version: "0.31.
|
|
444709
|
+
version: "0.31.7"
|
|
444706
444710
|
};
|
|
444707
444711
|
});
|
|
444708
444712
|
|
|
@@ -446309,7 +446313,7 @@ In headless mode, use:
|
|
|
446309
446313
|
debugLog("conversations", `retrieve(${specifiedConversationId}) [headless conv→agent lookup]`);
|
|
446310
446314
|
const conversation = await backend3.retrieveConversation(specifiedConversationId);
|
|
446311
446315
|
agent = await backend3.retrieveAgent(conversation.agent_id, {
|
|
446312
|
-
include: ["agent.
|
|
446316
|
+
include: ["agent.tools", "agent.tags"]
|
|
446313
446317
|
});
|
|
446314
446318
|
} catch (error5) {
|
|
446315
446319
|
trackHeadlessBoundaryError("headless_conversation_lookup_failed", error5, "headless_startup_conversation_lookup");
|
|
@@ -446349,7 +446353,7 @@ In headless mode, use:
|
|
|
446349
446353
|
if (!agent && specifiedAgentId) {
|
|
446350
446354
|
try {
|
|
446351
446355
|
agent = await backend3.retrieveAgent(specifiedAgentId, {
|
|
446352
|
-
include: ["agent.
|
|
446356
|
+
include: ["agent.tools", "agent.tags"]
|
|
446353
446357
|
});
|
|
446354
446358
|
} catch (_error) {
|
|
446355
446359
|
if (specifiedAgentIdFromAmbientBackendSwitch) {
|
|
@@ -509015,7 +509019,7 @@ Error: ${message}`);
|
|
|
509015
509019
|
} else {
|
|
509016
509020
|
try {
|
|
509017
509021
|
const agent2 = await backend3.retrieveAgent(agentIdArg, {
|
|
509018
|
-
include: ["agent.
|
|
509022
|
+
include: ["agent.tools", "agent.tags"]
|
|
509019
509023
|
});
|
|
509020
509024
|
setValidatedAgent(agent2);
|
|
509021
509025
|
resolvedAgent = agent2;
|
|
@@ -509033,7 +509037,7 @@ Error: ${message}`);
|
|
|
509033
509037
|
} else {
|
|
509034
509038
|
try {
|
|
509035
509039
|
const agent2 = await backend3.retrieveAgent(selectedGlobalAgentId, {
|
|
509036
|
-
include: ["agent.
|
|
509040
|
+
include: ["agent.tools", "agent.tags"]
|
|
509037
509041
|
});
|
|
509038
509042
|
setValidatedAgent(agent2);
|
|
509039
509043
|
resolvedAgent = agent2;
|
|
@@ -511731,4 +511735,4 @@ function registerBunOAuthFlows() {
|
|
|
511731
511735
|
registerBunOAuthFlows();
|
|
511732
511736
|
await init_src5().then(() => exports_src2);
|
|
511733
511737
|
|
|
511734
|
-
//# debugId=
|
|
511738
|
+
//# debugId=DA5F1F664CBDFC6664756E2164756E21
|
package/package.json
CHANGED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { describe, expect, test } from "bun:test";
|
|
2
|
+
import {
|
|
3
|
+
enforceWatcherPrIdentity,
|
|
4
|
+
parseArgs,
|
|
5
|
+
type WatcherPullRequest,
|
|
6
|
+
} from "./verify-pr-identity.ts";
|
|
7
|
+
|
|
8
|
+
const marker = "Pi-ai-watch: 1.0.0...1.0.1";
|
|
9
|
+
|
|
10
|
+
function pullRequest(
|
|
11
|
+
overrides: Partial<WatcherPullRequest> = {},
|
|
12
|
+
): WatcherPullRequest {
|
|
13
|
+
return {
|
|
14
|
+
author: { login: "amelia-letta" },
|
|
15
|
+
body: marker,
|
|
16
|
+
isDraft: true,
|
|
17
|
+
number: 123,
|
|
18
|
+
url: "https://github.com/letta-ai/letta-code/pull/123",
|
|
19
|
+
...overrides,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function enforce(
|
|
24
|
+
pullRequests: WatcherPullRequest[],
|
|
25
|
+
closed: string[] = [],
|
|
26
|
+
): WatcherPullRequest | null {
|
|
27
|
+
return enforceWatcherPrIdentity({
|
|
28
|
+
repo: "letta-ai/letta-code",
|
|
29
|
+
marker,
|
|
30
|
+
expectedLogin: "amelia-letta",
|
|
31
|
+
pullRequests,
|
|
32
|
+
closePullRequest: (candidate) => closed.push(candidate.url),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
describe("enforceWatcherPrIdentity", () => {
|
|
37
|
+
test("returns the matching Amelia draft PR", () => {
|
|
38
|
+
expect(enforce([pullRequest()])?.number).toBe(123);
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test("ignores unrelated open PRs", () => {
|
|
42
|
+
expect(enforce([pullRequest({ body: "unrelated" })])).toBeNull();
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test("closes and rejects a PR from the wrong author", () => {
|
|
46
|
+
const closed: string[] = [];
|
|
47
|
+
expect(() =>
|
|
48
|
+
enforce([pullRequest({ author: { login: "carenthomas" } })], closed),
|
|
49
|
+
).toThrow("author=carenthomas");
|
|
50
|
+
expect(closed).toEqual(["https://github.com/letta-ai/letta-code/pull/123"]);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test("closes and rejects a ready PR", () => {
|
|
54
|
+
const closed: string[] = [];
|
|
55
|
+
expect(() => enforce([pullRequest({ isDraft: false })], closed)).toThrow(
|
|
56
|
+
"draft=false",
|
|
57
|
+
);
|
|
58
|
+
expect(closed).toHaveLength(1);
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
test("rejects duplicate valid PRs", () => {
|
|
62
|
+
expect(() =>
|
|
63
|
+
enforce([
|
|
64
|
+
pullRequest(),
|
|
65
|
+
pullRequest({
|
|
66
|
+
number: 124,
|
|
67
|
+
url: "https://github.com/letta-ai/letta-code/pull/124",
|
|
68
|
+
}),
|
|
69
|
+
]),
|
|
70
|
+
).toThrow("Multiple open watcher PRs");
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
describe("parseArgs", () => {
|
|
75
|
+
test("requires every identity input", () => {
|
|
76
|
+
expect(() => parseArgs(["--repo", "letta-ai/letta-code"])).toThrow(
|
|
77
|
+
"--marker is required",
|
|
78
|
+
);
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
test("parses a complete invocation", () => {
|
|
82
|
+
expect(
|
|
83
|
+
parseArgs([
|
|
84
|
+
"--repo",
|
|
85
|
+
"letta-ai/letta-code",
|
|
86
|
+
"--marker",
|
|
87
|
+
marker,
|
|
88
|
+
"--expected-login",
|
|
89
|
+
"amelia-letta",
|
|
90
|
+
]),
|
|
91
|
+
).toEqual({
|
|
92
|
+
repo: "letta-ai/letta-code",
|
|
93
|
+
marker,
|
|
94
|
+
expectedLogin: "amelia-letta",
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
});
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
4
|
+
|
|
5
|
+
export interface WatcherPullRequest {
|
|
6
|
+
author: { login: string } | null;
|
|
7
|
+
body: string | null;
|
|
8
|
+
isDraft: boolean;
|
|
9
|
+
number: number;
|
|
10
|
+
url: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
interface Args {
|
|
14
|
+
expectedLogin: string;
|
|
15
|
+
marker: string;
|
|
16
|
+
repo: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface EnforceOptions extends Args {
|
|
20
|
+
closePullRequest: (pullRequest: WatcherPullRequest) => void;
|
|
21
|
+
pullRequests: WatcherPullRequest[];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function enforceWatcherPrIdentity(
|
|
25
|
+
options: EnforceOptions,
|
|
26
|
+
): WatcherPullRequest | null {
|
|
27
|
+
const matches = options.pullRequests.filter((pullRequest) =>
|
|
28
|
+
pullRequest.body?.includes(options.marker),
|
|
29
|
+
);
|
|
30
|
+
const invalid = matches.filter(
|
|
31
|
+
(pullRequest) =>
|
|
32
|
+
pullRequest.author?.login !== options.expectedLogin ||
|
|
33
|
+
!pullRequest.isDraft,
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
for (const pullRequest of invalid) options.closePullRequest(pullRequest);
|
|
37
|
+
|
|
38
|
+
if (invalid.length > 0) {
|
|
39
|
+
const details = invalid
|
|
40
|
+
.map(
|
|
41
|
+
(pullRequest) =>
|
|
42
|
+
`${pullRequest.url} (author=${pullRequest.author?.login ?? "unknown"}, draft=${pullRequest.isDraft})`,
|
|
43
|
+
)
|
|
44
|
+
.join(", ");
|
|
45
|
+
throw new Error(
|
|
46
|
+
`Closed watcher PRs that did not match author=${options.expectedLogin} and draft=true: ${details}`,
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
if (matches.length > 1) {
|
|
50
|
+
throw new Error(
|
|
51
|
+
`Multiple open watcher PRs contain marker ${JSON.stringify(options.marker)}`,
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
return matches[0] ?? null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function parseArgs(argv: string[]): Args {
|
|
58
|
+
let repo = "";
|
|
59
|
+
let marker = "";
|
|
60
|
+
let expectedLogin = "";
|
|
61
|
+
for (let index = 0; index < argv.length; index += 1) {
|
|
62
|
+
const argument = argv[index];
|
|
63
|
+
if (argument === "--repo") repo = argv[++index] ?? "";
|
|
64
|
+
else if (argument === "--marker") marker = argv[++index] ?? "";
|
|
65
|
+
else if (argument === "--expected-login") {
|
|
66
|
+
expectedLogin = argv[++index] ?? "";
|
|
67
|
+
} else {
|
|
68
|
+
throw new Error(`Unknown argument: ${argument}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (!/^[^/]+\/[^/]+$/.test(repo)) throw new Error("--repo is required");
|
|
72
|
+
if (!marker) throw new Error("--marker is required");
|
|
73
|
+
if (!expectedLogin) throw new Error("--expected-login is required");
|
|
74
|
+
return { repo, marker, expectedLogin };
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function runGh(args: string[]): string {
|
|
78
|
+
const result = spawnSync("gh", args, {
|
|
79
|
+
encoding: "utf8",
|
|
80
|
+
maxBuffer: 50 * 1024 * 1024,
|
|
81
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
82
|
+
});
|
|
83
|
+
if (result.status !== 0) {
|
|
84
|
+
throw new Error(`gh ${args.join(" ")} failed:\n${result.stderr}`);
|
|
85
|
+
}
|
|
86
|
+
return result.stdout;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function main(): void {
|
|
90
|
+
const args = parseArgs(process.argv.slice(2));
|
|
91
|
+
const pullRequests = JSON.parse(
|
|
92
|
+
runGh([
|
|
93
|
+
"pr",
|
|
94
|
+
"list",
|
|
95
|
+
"--repo",
|
|
96
|
+
args.repo,
|
|
97
|
+
"--state",
|
|
98
|
+
"open",
|
|
99
|
+
"--limit",
|
|
100
|
+
"1000",
|
|
101
|
+
"--json",
|
|
102
|
+
"author,body,isDraft,number,url",
|
|
103
|
+
]),
|
|
104
|
+
) as WatcherPullRequest[];
|
|
105
|
+
const verified = enforceWatcherPrIdentity({
|
|
106
|
+
...args,
|
|
107
|
+
pullRequests,
|
|
108
|
+
closePullRequest: (pullRequest) => {
|
|
109
|
+
runGh(["pr", "close", pullRequest.url, "--repo", args.repo]);
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
console.log(
|
|
113
|
+
verified
|
|
114
|
+
? `Verified Amelia draft PR: ${verified.url}`
|
|
115
|
+
: `No open PR contains marker ${JSON.stringify(args.marker)}`,
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (import.meta.main) main();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
/** Validates a daily skill-review batch and updates the tracker once. */
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { readFileSync } from "node:fs";
|
|
5
5
|
import { join } from "node:path";
|
|
6
6
|
import {
|
|
7
7
|
type BuiltinSkillWatchAnalysis,
|
|
@@ -9,6 +9,10 @@ import {
|
|
|
9
9
|
DEFAULT_TARGET_REPO,
|
|
10
10
|
} from "./analysis.ts";
|
|
11
11
|
import { createIssueComment, editIssueBody } from "./github.ts";
|
|
12
|
+
import {
|
|
13
|
+
discoverReviewArtifacts,
|
|
14
|
+
formatFailureReceipt,
|
|
15
|
+
} from "./result-artifacts.ts";
|
|
12
16
|
import {
|
|
13
17
|
hasTerminalCandidate,
|
|
14
18
|
parseTrackerState,
|
|
@@ -103,6 +107,7 @@ function main(): void {
|
|
|
103
107
|
let state = parseTrackerState(original.body);
|
|
104
108
|
let failed = false;
|
|
105
109
|
const outcomes: ValidatedOutcome[] = [];
|
|
110
|
+
const artifacts = discoverReviewArtifacts(args.resultsDir as string);
|
|
106
111
|
|
|
107
112
|
for (const candidate of manifest.candidates) {
|
|
108
113
|
const analysisPath = join(
|
|
@@ -130,14 +135,14 @@ function main(): void {
|
|
|
130
135
|
analysis.workflow_run_url = workflowRunUrl(pending.workflow_run_id);
|
|
131
136
|
assertAnalysisIdentity(received, analysis);
|
|
132
137
|
|
|
133
|
-
const resultPath =
|
|
134
|
-
args.resultsDir as string,
|
|
135
|
-
`builtin-skill-result-${received.skill}`,
|
|
136
|
-
"result.json",
|
|
137
|
-
);
|
|
138
|
+
const resultPath = artifacts.results.get(received.candidate_id);
|
|
138
139
|
try {
|
|
139
|
-
if (!
|
|
140
|
-
|
|
140
|
+
if (!resultPath) {
|
|
141
|
+
const receipt = artifacts.failures.get(received.candidate_id);
|
|
142
|
+
if (receipt) throw new Error(formatFailureReceipt(receipt));
|
|
143
|
+
throw new Error(
|
|
144
|
+
`Amelia result artifact is missing for ${received.candidate_id}`,
|
|
145
|
+
);
|
|
141
146
|
}
|
|
142
147
|
const result = readReviewResult(resultPath, analysis);
|
|
143
148
|
if (result.pr_url) {
|
|
@@ -29,6 +29,27 @@ describe("review evidence", () => {
|
|
|
29
29
|
expect(digestReviewEvidence(evidence)).toMatch(/^[a-f0-9]{64}$/);
|
|
30
30
|
});
|
|
31
31
|
|
|
32
|
+
test("accepts RFC 3339 UTC timestamps without milliseconds", () => {
|
|
33
|
+
expect(() =>
|
|
34
|
+
parseReviewEvidence({
|
|
35
|
+
schema_version: 1,
|
|
36
|
+
candidate_id: "candidate",
|
|
37
|
+
skill: "creating-skills",
|
|
38
|
+
sources: [
|
|
39
|
+
{
|
|
40
|
+
locator: "src/skills/builtin/creating-skills/SKILL.md",
|
|
41
|
+
revision: "a".repeat(40),
|
|
42
|
+
content_digest: null,
|
|
43
|
+
retrieved_at: "2026-08-26T00:00:00Z",
|
|
44
|
+
excerpt: "current source",
|
|
45
|
+
claims: ["checked current source"],
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
probes: [],
|
|
49
|
+
}),
|
|
50
|
+
).not.toThrow();
|
|
51
|
+
});
|
|
52
|
+
|
|
32
53
|
test("requires at least one source", () => {
|
|
33
54
|
expect(() =>
|
|
34
55
|
parseReviewEvidence({
|
|
@@ -38,7 +59,7 @@ describe("review evidence", () => {
|
|
|
38
59
|
sources: [],
|
|
39
60
|
probes: [],
|
|
40
61
|
}),
|
|
41
|
-
).toThrow("
|
|
62
|
+
).toThrow("between 1 and 5 sources");
|
|
42
63
|
});
|
|
43
64
|
|
|
44
65
|
test("rejects malformed digests and timestamps", () => {
|
|
@@ -59,28 +80,51 @@ describe("review evidence", () => {
|
|
|
59
80
|
],
|
|
60
81
|
probes: [],
|
|
61
82
|
}),
|
|
62
|
-
).toThrow("
|
|
83
|
+
).toThrow("content_digest is invalid");
|
|
63
84
|
});
|
|
64
85
|
|
|
65
|
-
test("
|
|
86
|
+
test("accepts production-sized evidence larger than the old tracker limit", () => {
|
|
87
|
+
const evidence = parseReviewEvidence({
|
|
88
|
+
schema_version: 1,
|
|
89
|
+
candidate_id: "candidate",
|
|
90
|
+
skill: "creating-skills",
|
|
91
|
+
sources: Array.from({ length: 5 }, (_, index) => ({
|
|
92
|
+
locator: `https://docs.letta.com/source-${index}`,
|
|
93
|
+
revision: "a".repeat(40),
|
|
94
|
+
content_digest: "b".repeat(64),
|
|
95
|
+
retrieved_at: "2026-08-26T00:00:00.000Z",
|
|
96
|
+
excerpt: "q".repeat(300),
|
|
97
|
+
claims: Array.from({ length: 5 }, () => "z".repeat(300)),
|
|
98
|
+
})),
|
|
99
|
+
probes: [],
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
expect(Buffer.byteLength(JSON.stringify(evidence), "utf8")).toBeGreaterThan(
|
|
103
|
+
650,
|
|
104
|
+
);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
test("still rejects evidence larger than an issue comment can safely hold", () => {
|
|
66
108
|
expect(() =>
|
|
67
109
|
parseReviewEvidence({
|
|
68
110
|
schema_version: 1,
|
|
69
111
|
candidate_id: "candidate",
|
|
70
112
|
skill: "creating-skills",
|
|
71
|
-
sources:
|
|
72
|
-
{
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
113
|
+
sources: Array.from({ length: 5 }, (_, index) => ({
|
|
114
|
+
locator: `https://docs.letta.com/${"x".repeat(450)}-${index}`,
|
|
115
|
+
revision: "y".repeat(300),
|
|
116
|
+
content_digest: null,
|
|
117
|
+
retrieved_at: "2026-08-26T00:00:00.000Z",
|
|
118
|
+
excerpt: "q".repeat(300),
|
|
119
|
+
claims: Array.from({ length: 5 }, () => "z".repeat(500)),
|
|
120
|
+
})),
|
|
121
|
+
probes: Array.from({ length: 5 }, () => ({
|
|
122
|
+
command: "c".repeat(500),
|
|
123
|
+
result_digest: "d".repeat(64),
|
|
124
|
+
summary: "s".repeat(500),
|
|
125
|
+
})),
|
|
82
126
|
}),
|
|
83
|
-
).toThrow("exceeds
|
|
127
|
+
).toThrow("exceeds 16384 bytes");
|
|
84
128
|
});
|
|
85
129
|
|
|
86
130
|
test("requires a revision or digest and rejects unknown fields", () => {
|
|
@@ -100,7 +144,7 @@ describe("review evidence", () => {
|
|
|
100
144
|
sources: [source],
|
|
101
145
|
probes: [],
|
|
102
146
|
}),
|
|
103
|
-
).toThrow("
|
|
147
|
+
).toThrow("requires a revision or content_digest");
|
|
104
148
|
expect(() =>
|
|
105
149
|
parseReviewEvidence({
|
|
106
150
|
schema_version: 1,
|
|
@@ -109,6 +153,6 @@ describe("review evidence", () => {
|
|
|
109
153
|
sources: [{ ...source, content_digest: "a".repeat(64), secret: "no" }],
|
|
110
154
|
probes: [],
|
|
111
155
|
}),
|
|
112
|
-
).toThrow("
|
|
156
|
+
).toThrow("unknown or missing fields");
|
|
113
157
|
});
|
|
114
158
|
});
|