@tangle-network/agent-interface 0.39.0 → 0.41.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/README.md +36 -0
- package/dist/agent-candidate-code-schema.d.ts +2 -0
- package/dist/agent-candidate-execution-plan-schema.d.ts +10 -6
- package/dist/agent-candidate-profile-schema.d.ts +2 -0
- package/dist/agent-candidate-promotion-schema.d.ts +54 -20
- package/dist/agent-candidate-receipt-schema.d.ts +6 -4
- package/dist/agent-candidate-schema.d.ts +4 -0
- package/dist/agent-execution-preparation.d.ts +2 -0
- package/dist/agent-profile-snapshot.d.ts +9 -0
- package/dist/agent-profile-snapshot.js +24 -0
- package/dist/environment-provider.d.ts +119 -1
- package/dist/environment-provider.js +102 -1
- package/dist/harness.d.ts +5 -1
- package/dist/harness.js +2 -0
- package/dist/index.d.ts +14 -3
- package/dist/index.js +5 -0
- package/dist/interaction.d.ts +173 -51
- package/dist/interaction.js +377 -36
- package/dist/portable-context.d.ts +716 -0
- package/dist/portable-context.js +741 -0
- package/dist/profile-schema.d.ts +2 -0
- package/dist/runtime-control.d.ts +38 -0
- package/dist/runtime-control.js +161 -0
- package/dist/workspace-branching.d.ts +251 -0
- package/dist/workspace-branching.js +400 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,6 +5,42 @@ agents, the sidecar, and provider adapters: capabilities, agent profiles,
|
|
|
5
5
|
message parts, and harness descriptors. This is the canonical home for those
|
|
6
6
|
shapes; higher-level packages import from here rather than redefining them.
|
|
7
7
|
|
|
8
|
+
## Durable runs, interactions, and context
|
|
9
|
+
|
|
10
|
+
`AgentRunControlRef` identifies a retained run without depending on a live JavaScript object.
|
|
11
|
+
`RuntimeEventEnvelope` adds stable run, event, sequence, cursor, and timestamp fields around the existing `StreamEvent` union, and its runtime schema validates every canonical event variant.
|
|
12
|
+
|
|
13
|
+
An environment advertises `interactions` only when it can originate and answer typed requests.
|
|
14
|
+
`AgentEnvironmentCapabilitiesSchema` strictly validates the complete capability document at runtime, including all-or-nothing durable branching declarations.
|
|
15
|
+
Optional provider methods must be absent when their capability is false so clients cannot expose an action the provider has denied.
|
|
16
|
+
The capability names supported request kinds, answer field types, response scopes, secret answers, concurrency, replay, and response idempotency.
|
|
17
|
+
`AgentEnvironment.respondToInteraction()` and `AgentSession.respondToInteraction()` bind each response to its run, environment, optional provider session, interaction, and caller operation identifier.
|
|
18
|
+
Their acknowledgement distinguishes acceptance, exact prior resolution, conflicting prior resolution, expiry, cancellation, unknown interaction, unknown run, binding mismatch, and transport failure.
|
|
19
|
+
Acknowledgements deliberately contain no answer value or answer hash because both can disclose low-entropy secret answers.
|
|
20
|
+
Response data is accepted only after `validateInteractionResponse()` checks it against the exact outstanding request, rejects undeclared fields, and enforces the request's permission scopes.
|
|
21
|
+
An omitted permission scope permits only a one-time response; session and persistent grants must be explicit.
|
|
22
|
+
The legacy `SdkProviderAdapter.respondToInteraction(response)` remains source-compatible, while new adapters use `respondToInteractionCommand(command)` for exact binding and durable acknowledgement.
|
|
23
|
+
|
|
24
|
+
Portable conversation transfer reuses `BackendMessage` and `InputPart` rather than defining another message format.
|
|
25
|
+
Planning is represented separately from execution: a plan embeds the immutable source, lists every message and part decision, names the destination runner, contains the exact derived context, and carries a canonical digest.
|
|
26
|
+
Every plan request has a canonical request digest, and every ready, over-limit, or unsupported result repeats the request identifier and digest.
|
|
27
|
+
`portableContextPlanResultMatchesRequest()` verifies that the result belongs to the exact request, the returned source and destination match, and a ready plan stays within its requested token limit.
|
|
28
|
+
Partial input or output always requires explicit user or policy acceptance, even when no individual message was transformed.
|
|
29
|
+
`ContextTransferRequest` binds an operation identifier to that accepted plan, while `ContextTransferResult` distinguishes first admission, exact replay, changed-input conflict, and unknown transport outcome.
|
|
30
|
+
`contextTransferResultMatchesRequest()` checks the operation identifier and request digest for every outcome before a caller accepts, retries, or reports it.
|
|
31
|
+
Its successful receipt repeats the exact destination and carries the provider's session-creation operation and timestamp, identifying the one fresh provider session that admitted the context.
|
|
32
|
+
`NativeContextBoundaryProof` is the separate path for same-session continuation and includes the exact run identity.
|
|
33
|
+
Continuation is valid only when the provider proves the recorded token, revision, digest, or message boundary, sends zero copied history, and applies retry or changed-input conflict semantics.
|
|
34
|
+
|
|
35
|
+
Providers that support recoverable workspace copies expose `workspaceBranching` and set `branching.retrySafe`, `branching.lookup`, and `branching.cleanup` together.
|
|
36
|
+
Checkpoint and fork requests bind an idempotency key to a canonical request digest.
|
|
37
|
+
Every returned resource repeats and validates that identity, lookups recover remote success after caller restart, changed-input key reuse returns a conflict, and cleanup binds its acknowledgement to the exact provider and target.
|
|
38
|
+
A checkpoint with dependent forks returns `in_use` plus the blocking environment identifiers and remains recoverable until those forks are destroyed.
|
|
39
|
+
The older `checkpoint()` and `fork()` methods remain source-compatible for providers that have not yet implemented recovery semantics, but clients must not present them as durable workspace branching.
|
|
40
|
+
|
|
41
|
+
All new wire values have exported Zod schemas on the package root.
|
|
42
|
+
Omitting `interactions` or leaving the three durable branching flags false is the compatible declaration for existing providers.
|
|
43
|
+
|
|
8
44
|
## Install
|
|
9
45
|
|
|
10
46
|
```bash
|
|
@@ -74,6 +74,8 @@ export declare const agentCandidateProfilePlanMaterialSchema: z.ZodObject<{
|
|
|
74
74
|
openclaw: "openclaw";
|
|
75
75
|
amp: "amp";
|
|
76
76
|
"factory-droids": "factory-droids";
|
|
77
|
+
forge: "forge";
|
|
78
|
+
cursor: "cursor";
|
|
77
79
|
acp: "acp";
|
|
78
80
|
"cli-base": "cli-base";
|
|
79
81
|
}>;
|
|
@@ -331,6 +333,8 @@ export declare const agentCandidateExecutionPlanMaterialSchema: z.ZodObject<{
|
|
|
331
333
|
openclaw: "openclaw";
|
|
332
334
|
amp: "amp";
|
|
333
335
|
"factory-droids": "factory-droids";
|
|
336
|
+
forge: "forge";
|
|
337
|
+
cursor: "cursor";
|
|
334
338
|
acp: "acp";
|
|
335
339
|
"cli-base": "cli-base";
|
|
336
340
|
}>;
|
|
@@ -519,7 +523,7 @@ export declare const agentCandidateProfilePlanEvidenceSchema: z.ZodObject<{
|
|
|
519
523
|
digest: z.ZodType<`sha256:${string}`, unknown, z.core.$ZodTypeInternals<`sha256:${string}`, unknown>>;
|
|
520
524
|
material: z.ZodType<{
|
|
521
525
|
sourceProfileDigest: `sha256:${string}`;
|
|
522
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
526
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
523
527
|
files: {
|
|
524
528
|
relPath: string;
|
|
525
529
|
mode: number;
|
|
@@ -543,7 +547,7 @@ export declare const agentCandidateProfilePlanEvidenceSchema: z.ZodObject<{
|
|
|
543
547
|
} | undefined;
|
|
544
548
|
}, unknown, z.core.$ZodTypeInternals<{
|
|
545
549
|
sourceProfileDigest: `sha256:${string}`;
|
|
546
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
550
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
547
551
|
files: {
|
|
548
552
|
relPath: string;
|
|
549
553
|
mode: number;
|
|
@@ -592,7 +596,7 @@ export declare const agentCandidateProfileActivationSchema: z.ZodObject<{
|
|
|
592
596
|
digest: `sha256:${string}`;
|
|
593
597
|
material: {
|
|
594
598
|
sourceProfileDigest: `sha256:${string}`;
|
|
595
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
599
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
596
600
|
files: {
|
|
597
601
|
relPath: string;
|
|
598
602
|
mode: number;
|
|
@@ -639,7 +643,7 @@ export declare const agentCandidateProfileActivationSchema: z.ZodObject<{
|
|
|
639
643
|
digest: `sha256:${string}`;
|
|
640
644
|
material: {
|
|
641
645
|
sourceProfileDigest: `sha256:${string}`;
|
|
642
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
646
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
643
647
|
files: {
|
|
644
648
|
relPath: string;
|
|
645
649
|
mode: number;
|
|
@@ -719,7 +723,7 @@ export declare const agentCandidateExecutionPlanEvidenceSchema: z.ZodObject<{
|
|
|
719
723
|
targetWorkspace: "candidate" | "task";
|
|
720
724
|
mountPaths: string[];
|
|
721
725
|
};
|
|
722
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
726
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
723
727
|
harnessVersion: string;
|
|
724
728
|
instructionDelivery: {
|
|
725
729
|
kind: "argv-append";
|
|
@@ -962,7 +966,7 @@ export declare const agentCandidateExecutionPlanEvidenceSchema: z.ZodObject<{
|
|
|
962
966
|
targetWorkspace: "candidate" | "task";
|
|
963
967
|
mountPaths: string[];
|
|
964
968
|
};
|
|
965
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
969
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
966
970
|
harnessVersion: string;
|
|
967
971
|
instructionDelivery: {
|
|
968
972
|
kind: "argv-append";
|
|
@@ -41,6 +41,8 @@ export declare const agentCandidateExperimentSchema: z.ZodObject<{
|
|
|
41
41
|
openclaw: "openclaw";
|
|
42
42
|
amp: "amp";
|
|
43
43
|
"factory-droids": "factory-droids";
|
|
44
|
+
forge: "forge";
|
|
45
|
+
cursor: "cursor";
|
|
44
46
|
acp: "acp";
|
|
45
47
|
"cli-base": "cli-base";
|
|
46
48
|
}>>;
|
|
@@ -589,6 +591,8 @@ export declare const agentCandidateExperimentSchema: z.ZodObject<{
|
|
|
589
591
|
openclaw: "openclaw";
|
|
590
592
|
amp: "amp";
|
|
591
593
|
"factory-droids": "factory-droids";
|
|
594
|
+
forge: "forge";
|
|
595
|
+
cursor: "cursor";
|
|
592
596
|
acp: "acp";
|
|
593
597
|
"cli-base": "cli-base";
|
|
594
598
|
}>;
|
|
@@ -864,6 +868,8 @@ export declare const agentCandidateExperimentSchema: z.ZodObject<{
|
|
|
864
868
|
openclaw: "openclaw";
|
|
865
869
|
amp: "amp";
|
|
866
870
|
"factory-droids": "factory-droids";
|
|
871
|
+
forge: "forge";
|
|
872
|
+
cursor: "cursor";
|
|
867
873
|
acp: "acp";
|
|
868
874
|
"cli-base": "cli-base";
|
|
869
875
|
}>>;
|
|
@@ -1412,6 +1418,8 @@ export declare const agentCandidateExperimentSchema: z.ZodObject<{
|
|
|
1412
1418
|
openclaw: "openclaw";
|
|
1413
1419
|
amp: "amp";
|
|
1414
1420
|
"factory-droids": "factory-droids";
|
|
1421
|
+
forge: "forge";
|
|
1422
|
+
cursor: "cursor";
|
|
1415
1423
|
acp: "acp";
|
|
1416
1424
|
"cli-base": "cli-base";
|
|
1417
1425
|
}>;
|
|
@@ -2049,7 +2057,7 @@ export declare const candidateExecutionEvidenceSchema: z.ZodObject<{
|
|
|
2049
2057
|
digest: `sha256:${string}`;
|
|
2050
2058
|
material: {
|
|
2051
2059
|
sourceProfileDigest: `sha256:${string}`;
|
|
2052
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
2060
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
2053
2061
|
files: {
|
|
2054
2062
|
relPath: string;
|
|
2055
2063
|
mode: number;
|
|
@@ -2096,7 +2104,7 @@ export declare const candidateExecutionEvidenceSchema: z.ZodObject<{
|
|
|
2096
2104
|
digest: `sha256:${string}`;
|
|
2097
2105
|
material: {
|
|
2098
2106
|
sourceProfileDigest: `sha256:${string}`;
|
|
2099
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
2107
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
2100
2108
|
files: {
|
|
2101
2109
|
relPath: string;
|
|
2102
2110
|
mode: number;
|
|
@@ -2176,7 +2184,7 @@ export declare const candidateExecutionEvidenceSchema: z.ZodObject<{
|
|
|
2176
2184
|
targetWorkspace: "candidate" | "task";
|
|
2177
2185
|
mountPaths: string[];
|
|
2178
2186
|
};
|
|
2179
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
2187
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
2180
2188
|
harnessVersion: string;
|
|
2181
2189
|
instructionDelivery: {
|
|
2182
2190
|
kind: "argv-append";
|
|
@@ -2419,7 +2427,7 @@ export declare const candidateExecutionEvidenceSchema: z.ZodObject<{
|
|
|
2419
2427
|
targetWorkspace: "candidate" | "task";
|
|
2420
2428
|
mountPaths: string[];
|
|
2421
2429
|
};
|
|
2422
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
2430
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
2423
2431
|
harnessVersion: string;
|
|
2424
2432
|
instructionDelivery: {
|
|
2425
2433
|
kind: "argv-append";
|
|
@@ -2726,6 +2734,8 @@ export declare const candidateExecutionEvidenceSchema: z.ZodObject<{
|
|
|
2726
2734
|
openclaw: "openclaw";
|
|
2727
2735
|
amp: "amp";
|
|
2728
2736
|
"factory-droids": "factory-droids";
|
|
2737
|
+
forge: "forge";
|
|
2738
|
+
cursor: "cursor";
|
|
2729
2739
|
acp: "acp";
|
|
2730
2740
|
"cli-base": "cli-base";
|
|
2731
2741
|
}>;
|
|
@@ -3589,6 +3599,8 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
3589
3599
|
openclaw: "openclaw";
|
|
3590
3600
|
amp: "amp";
|
|
3591
3601
|
"factory-droids": "factory-droids";
|
|
3602
|
+
forge: "forge";
|
|
3603
|
+
cursor: "cursor";
|
|
3592
3604
|
acp: "acp";
|
|
3593
3605
|
"cli-base": "cli-base";
|
|
3594
3606
|
}>>;
|
|
@@ -4137,6 +4149,8 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
4137
4149
|
openclaw: "openclaw";
|
|
4138
4150
|
amp: "amp";
|
|
4139
4151
|
"factory-droids": "factory-droids";
|
|
4152
|
+
forge: "forge";
|
|
4153
|
+
cursor: "cursor";
|
|
4140
4154
|
acp: "acp";
|
|
4141
4155
|
"cli-base": "cli-base";
|
|
4142
4156
|
}>;
|
|
@@ -4412,6 +4426,8 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
4412
4426
|
openclaw: "openclaw";
|
|
4413
4427
|
amp: "amp";
|
|
4414
4428
|
"factory-droids": "factory-droids";
|
|
4429
|
+
forge: "forge";
|
|
4430
|
+
cursor: "cursor";
|
|
4415
4431
|
acp: "acp";
|
|
4416
4432
|
"cli-base": "cli-base";
|
|
4417
4433
|
}>>;
|
|
@@ -4960,6 +4976,8 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
4960
4976
|
openclaw: "openclaw";
|
|
4961
4977
|
amp: "amp";
|
|
4962
4978
|
"factory-droids": "factory-droids";
|
|
4979
|
+
forge: "forge";
|
|
4980
|
+
cursor: "cursor";
|
|
4963
4981
|
acp: "acp";
|
|
4964
4982
|
"cli-base": "cli-base";
|
|
4965
4983
|
}>;
|
|
@@ -5598,7 +5616,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
5598
5616
|
digest: `sha256:${string}`;
|
|
5599
5617
|
material: {
|
|
5600
5618
|
sourceProfileDigest: `sha256:${string}`;
|
|
5601
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
5619
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
5602
5620
|
files: {
|
|
5603
5621
|
relPath: string;
|
|
5604
5622
|
mode: number;
|
|
@@ -5645,7 +5663,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
5645
5663
|
digest: `sha256:${string}`;
|
|
5646
5664
|
material: {
|
|
5647
5665
|
sourceProfileDigest: `sha256:${string}`;
|
|
5648
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
5666
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
5649
5667
|
files: {
|
|
5650
5668
|
relPath: string;
|
|
5651
5669
|
mode: number;
|
|
@@ -5725,7 +5743,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
5725
5743
|
targetWorkspace: "candidate" | "task";
|
|
5726
5744
|
mountPaths: string[];
|
|
5727
5745
|
};
|
|
5728
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
5746
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
5729
5747
|
harnessVersion: string;
|
|
5730
5748
|
instructionDelivery: {
|
|
5731
5749
|
kind: "argv-append";
|
|
@@ -5968,7 +5986,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
5968
5986
|
targetWorkspace: "candidate" | "task";
|
|
5969
5987
|
mountPaths: string[];
|
|
5970
5988
|
};
|
|
5971
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
5989
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
5972
5990
|
harnessVersion: string;
|
|
5973
5991
|
instructionDelivery: {
|
|
5974
5992
|
kind: "argv-append";
|
|
@@ -6275,6 +6293,8 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
6275
6293
|
openclaw: "openclaw";
|
|
6276
6294
|
amp: "amp";
|
|
6277
6295
|
"factory-droids": "factory-droids";
|
|
6296
|
+
forge: "forge";
|
|
6297
|
+
cursor: "cursor";
|
|
6278
6298
|
acp: "acp";
|
|
6279
6299
|
"cli-base": "cli-base";
|
|
6280
6300
|
}>;
|
|
@@ -6976,7 +6996,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
6976
6996
|
digest: `sha256:${string}`;
|
|
6977
6997
|
material: {
|
|
6978
6998
|
sourceProfileDigest: `sha256:${string}`;
|
|
6979
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
6999
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
6980
7000
|
files: {
|
|
6981
7001
|
relPath: string;
|
|
6982
7002
|
mode: number;
|
|
@@ -7023,7 +7043,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
7023
7043
|
digest: `sha256:${string}`;
|
|
7024
7044
|
material: {
|
|
7025
7045
|
sourceProfileDigest: `sha256:${string}`;
|
|
7026
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
7046
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
7027
7047
|
files: {
|
|
7028
7048
|
relPath: string;
|
|
7029
7049
|
mode: number;
|
|
@@ -7103,7 +7123,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
7103
7123
|
targetWorkspace: "candidate" | "task";
|
|
7104
7124
|
mountPaths: string[];
|
|
7105
7125
|
};
|
|
7106
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
7126
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
7107
7127
|
harnessVersion: string;
|
|
7108
7128
|
instructionDelivery: {
|
|
7109
7129
|
kind: "argv-append";
|
|
@@ -7346,7 +7366,7 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
7346
7366
|
targetWorkspace: "candidate" | "task";
|
|
7347
7367
|
mountPaths: string[];
|
|
7348
7368
|
};
|
|
7349
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
7369
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
7350
7370
|
harnessVersion: string;
|
|
7351
7371
|
instructionDelivery: {
|
|
7352
7372
|
kind: "argv-append";
|
|
@@ -7653,6 +7673,8 @@ export declare const agentImprovementMeasuredComparisonSchema: z.ZodObject<{
|
|
|
7653
7673
|
openclaw: "openclaw";
|
|
7654
7674
|
amp: "amp";
|
|
7655
7675
|
"factory-droids": "factory-droids";
|
|
7676
|
+
forge: "forge";
|
|
7677
|
+
cursor: "cursor";
|
|
7656
7678
|
acp: "acp";
|
|
7657
7679
|
"cli-base": "cli-base";
|
|
7658
7680
|
}>;
|
|
@@ -8546,6 +8568,8 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
8546
8568
|
openclaw: "openclaw";
|
|
8547
8569
|
amp: "amp";
|
|
8548
8570
|
"factory-droids": "factory-droids";
|
|
8571
|
+
forge: "forge";
|
|
8572
|
+
cursor: "cursor";
|
|
8549
8573
|
acp: "acp";
|
|
8550
8574
|
"cli-base": "cli-base";
|
|
8551
8575
|
}>>;
|
|
@@ -9094,6 +9118,8 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
9094
9118
|
openclaw: "openclaw";
|
|
9095
9119
|
amp: "amp";
|
|
9096
9120
|
"factory-droids": "factory-droids";
|
|
9121
|
+
forge: "forge";
|
|
9122
|
+
cursor: "cursor";
|
|
9097
9123
|
acp: "acp";
|
|
9098
9124
|
"cli-base": "cli-base";
|
|
9099
9125
|
}>;
|
|
@@ -9369,6 +9395,8 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
9369
9395
|
openclaw: "openclaw";
|
|
9370
9396
|
amp: "amp";
|
|
9371
9397
|
"factory-droids": "factory-droids";
|
|
9398
|
+
forge: "forge";
|
|
9399
|
+
cursor: "cursor";
|
|
9372
9400
|
acp: "acp";
|
|
9373
9401
|
"cli-base": "cli-base";
|
|
9374
9402
|
}>>;
|
|
@@ -9917,6 +9945,8 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
9917
9945
|
openclaw: "openclaw";
|
|
9918
9946
|
amp: "amp";
|
|
9919
9947
|
"factory-droids": "factory-droids";
|
|
9948
|
+
forge: "forge";
|
|
9949
|
+
cursor: "cursor";
|
|
9920
9950
|
acp: "acp";
|
|
9921
9951
|
"cli-base": "cli-base";
|
|
9922
9952
|
}>;
|
|
@@ -10555,7 +10585,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
10555
10585
|
digest: `sha256:${string}`;
|
|
10556
10586
|
material: {
|
|
10557
10587
|
sourceProfileDigest: `sha256:${string}`;
|
|
10558
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
10588
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
10559
10589
|
files: {
|
|
10560
10590
|
relPath: string;
|
|
10561
10591
|
mode: number;
|
|
@@ -10602,7 +10632,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
10602
10632
|
digest: `sha256:${string}`;
|
|
10603
10633
|
material: {
|
|
10604
10634
|
sourceProfileDigest: `sha256:${string}`;
|
|
10605
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
10635
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
10606
10636
|
files: {
|
|
10607
10637
|
relPath: string;
|
|
10608
10638
|
mode: number;
|
|
@@ -10682,7 +10712,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
10682
10712
|
targetWorkspace: "candidate" | "task";
|
|
10683
10713
|
mountPaths: string[];
|
|
10684
10714
|
};
|
|
10685
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
10715
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
10686
10716
|
harnessVersion: string;
|
|
10687
10717
|
instructionDelivery: {
|
|
10688
10718
|
kind: "argv-append";
|
|
@@ -10925,7 +10955,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
10925
10955
|
targetWorkspace: "candidate" | "task";
|
|
10926
10956
|
mountPaths: string[];
|
|
10927
10957
|
};
|
|
10928
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
10958
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
10929
10959
|
harnessVersion: string;
|
|
10930
10960
|
instructionDelivery: {
|
|
10931
10961
|
kind: "argv-append";
|
|
@@ -11232,6 +11262,8 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
11232
11262
|
openclaw: "openclaw";
|
|
11233
11263
|
amp: "amp";
|
|
11234
11264
|
"factory-droids": "factory-droids";
|
|
11265
|
+
forge: "forge";
|
|
11266
|
+
cursor: "cursor";
|
|
11235
11267
|
acp: "acp";
|
|
11236
11268
|
"cli-base": "cli-base";
|
|
11237
11269
|
}>;
|
|
@@ -11933,7 +11965,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
11933
11965
|
digest: `sha256:${string}`;
|
|
11934
11966
|
material: {
|
|
11935
11967
|
sourceProfileDigest: `sha256:${string}`;
|
|
11936
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
11968
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
11937
11969
|
files: {
|
|
11938
11970
|
relPath: string;
|
|
11939
11971
|
mode: number;
|
|
@@ -11980,7 +12012,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
11980
12012
|
digest: `sha256:${string}`;
|
|
11981
12013
|
material: {
|
|
11982
12014
|
sourceProfileDigest: `sha256:${string}`;
|
|
11983
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
12015
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
11984
12016
|
files: {
|
|
11985
12017
|
relPath: string;
|
|
11986
12018
|
mode: number;
|
|
@@ -12060,7 +12092,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
12060
12092
|
targetWorkspace: "candidate" | "task";
|
|
12061
12093
|
mountPaths: string[];
|
|
12062
12094
|
};
|
|
12063
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
12095
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
12064
12096
|
harnessVersion: string;
|
|
12065
12097
|
instructionDelivery: {
|
|
12066
12098
|
kind: "argv-append";
|
|
@@ -12303,7 +12335,7 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
12303
12335
|
targetWorkspace: "candidate" | "task";
|
|
12304
12336
|
mountPaths: string[];
|
|
12305
12337
|
};
|
|
12306
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
12338
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
12307
12339
|
harnessVersion: string;
|
|
12308
12340
|
instructionDelivery: {
|
|
12309
12341
|
kind: "argv-append";
|
|
@@ -12610,6 +12642,8 @@ export declare const agentImprovementProposalSchema: z.ZodObject<{
|
|
|
12610
12642
|
openclaw: "openclaw";
|
|
12611
12643
|
amp: "amp";
|
|
12612
12644
|
"factory-droids": "factory-droids";
|
|
12645
|
+
forge: "forge";
|
|
12646
|
+
cursor: "cursor";
|
|
12613
12647
|
acp: "acp";
|
|
12614
12648
|
"cli-base": "cli-base";
|
|
12615
12649
|
}>;
|
|
@@ -196,7 +196,7 @@ export declare const agentCandidateMaterializationReceiptSchema: z.ZodObject<{
|
|
|
196
196
|
digest: `sha256:${string}`;
|
|
197
197
|
material: {
|
|
198
198
|
sourceProfileDigest: `sha256:${string}`;
|
|
199
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
199
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
200
200
|
files: {
|
|
201
201
|
relPath: string;
|
|
202
202
|
mode: number;
|
|
@@ -243,7 +243,7 @@ export declare const agentCandidateMaterializationReceiptSchema: z.ZodObject<{
|
|
|
243
243
|
digest: `sha256:${string}`;
|
|
244
244
|
material: {
|
|
245
245
|
sourceProfileDigest: `sha256:${string}`;
|
|
246
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
246
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
247
247
|
files: {
|
|
248
248
|
relPath: string;
|
|
249
249
|
mode: number;
|
|
@@ -323,7 +323,7 @@ export declare const agentCandidateMaterializationReceiptSchema: z.ZodObject<{
|
|
|
323
323
|
targetWorkspace: "candidate" | "task";
|
|
324
324
|
mountPaths: string[];
|
|
325
325
|
};
|
|
326
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
326
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
327
327
|
harnessVersion: string;
|
|
328
328
|
instructionDelivery: {
|
|
329
329
|
kind: "argv-append";
|
|
@@ -566,7 +566,7 @@ export declare const agentCandidateMaterializationReceiptSchema: z.ZodObject<{
|
|
|
566
566
|
targetWorkspace: "candidate" | "task";
|
|
567
567
|
mountPaths: string[];
|
|
568
568
|
};
|
|
569
|
-
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "acp" | "cli-base";
|
|
569
|
+
harness: "claude-code" | "nanoclaw" | "codex" | "opencode" | "kimi-code" | "pi" | "gemini" | "hermes" | "openclaw" | "amp" | "factory-droids" | "forge" | "cursor" | "acp" | "cli-base";
|
|
570
570
|
harnessVersion: string;
|
|
571
571
|
instructionDelivery: {
|
|
572
572
|
kind: "argv-append";
|
|
@@ -873,6 +873,8 @@ export declare const agentCandidateMaterializationReceiptSchema: z.ZodObject<{
|
|
|
873
873
|
openclaw: "openclaw";
|
|
874
874
|
amp: "amp";
|
|
875
875
|
"factory-droids": "factory-droids";
|
|
876
|
+
forge: "forge";
|
|
877
|
+
cursor: "cursor";
|
|
876
878
|
acp: "acp";
|
|
877
879
|
"cli-base": "cli-base";
|
|
878
880
|
}>;
|
|
@@ -45,6 +45,8 @@ export declare const agentCandidateBundleSchema: z.ZodObject<{
|
|
|
45
45
|
openclaw: "openclaw";
|
|
46
46
|
amp: "amp";
|
|
47
47
|
"factory-droids": "factory-droids";
|
|
48
|
+
forge: "forge";
|
|
49
|
+
cursor: "cursor";
|
|
48
50
|
acp: "acp";
|
|
49
51
|
"cli-base": "cli-base";
|
|
50
52
|
}>>;
|
|
@@ -593,6 +595,8 @@ export declare const agentCandidateBundleSchema: z.ZodObject<{
|
|
|
593
595
|
openclaw: "openclaw";
|
|
594
596
|
amp: "amp";
|
|
595
597
|
"factory-droids": "factory-droids";
|
|
598
|
+
forge: "forge";
|
|
599
|
+
cursor: "cursor";
|
|
596
600
|
acp: "acp";
|
|
597
601
|
"cli-base": "cli-base";
|
|
598
602
|
}>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AgentProfile } from "./agent-profile.js";
|
|
2
|
+
/**
|
|
3
|
+
* Detach, validate, and recursively freeze one AgentProfile at an intake boundary.
|
|
4
|
+
*
|
|
5
|
+
* The returned value is exactly the existing schema output: this function adds no
|
|
6
|
+
* defaults and applies no provider, model, or execution policy. Values outside the
|
|
7
|
+
* existing canonical profile JSON domain fail instead of becoming mutable state.
|
|
8
|
+
*/
|
|
9
|
+
export declare function snapshotAgentProfile(value: unknown): AgentProfile;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { canonicalAgentProfileValue } from "./agent-profile-canonical.js";
|
|
2
|
+
import { agentProfileSchema } from "./profile-schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Detach, validate, and recursively freeze one AgentProfile at an intake boundary.
|
|
5
|
+
*
|
|
6
|
+
* The returned value is exactly the existing schema output: this function adds no
|
|
7
|
+
* defaults and applies no provider, model, or execution policy. Values outside the
|
|
8
|
+
* existing canonical profile JSON domain fail instead of becoming mutable state.
|
|
9
|
+
*/
|
|
10
|
+
export function snapshotAgentProfile(value) {
|
|
11
|
+
const parsed = agentProfileSchema.parse(structuredClone(value));
|
|
12
|
+
canonicalAgentProfileValue(parsed);
|
|
13
|
+
return deepFreeze(parsed);
|
|
14
|
+
}
|
|
15
|
+
function deepFreeze(value, seen = new Set()) {
|
|
16
|
+
if (value === null || typeof value !== "object" || seen.has(value)) {
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
seen.add(value);
|
|
20
|
+
for (const child of Object.values(value)) {
|
|
21
|
+
deepFreeze(child, seen);
|
|
22
|
+
}
|
|
23
|
+
return Object.freeze(value);
|
|
24
|
+
}
|