specrails-core 5.2.3 → 5.4.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 +3 -0
- package/bin/specrails-core.mjs +5 -0
- package/dist/agent-runtime/capabilities.d.ts +27 -0
- package/dist/agent-runtime/capabilities.js +73 -0
- package/dist/agent-runtime/capabilities.js.map +1 -0
- package/dist/agent-runtime/cli-executor.d.ts +43 -0
- package/dist/agent-runtime/cli-executor.js +405 -0
- package/dist/agent-runtime/cli-executor.js.map +1 -0
- package/dist/agent-runtime/cli-process.d.ts +32 -0
- package/dist/agent-runtime/cli-process.js +159 -0
- package/dist/agent-runtime/cli-process.js.map +1 -0
- package/dist/agent-runtime/cli.d.ts +39 -0
- package/dist/agent-runtime/cli.js +216 -0
- package/dist/agent-runtime/cli.js.map +1 -0
- package/dist/agent-runtime/codex-schema.d.ts +4 -0
- package/dist/agent-runtime/codex-schema.js +31 -0
- package/dist/agent-runtime/codex-schema.js.map +1 -0
- package/dist/agent-runtime/config.d.ts +11 -0
- package/dist/agent-runtime/config.js +263 -0
- package/dist/agent-runtime/config.js.map +1 -0
- package/dist/agent-runtime/core-host.d.ts +41 -0
- package/dist/agent-runtime/core-host.js +132 -0
- package/dist/agent-runtime/core-host.js.map +1 -0
- package/dist/agent-runtime/durable-store.d.ts +22 -0
- package/dist/agent-runtime/durable-store.js +205 -0
- package/dist/agent-runtime/durable-store.js.map +1 -0
- package/dist/agent-runtime/efficiency-summary.d.ts +67 -0
- package/dist/agent-runtime/efficiency-summary.js +52 -0
- package/dist/agent-runtime/efficiency-summary.js.map +1 -0
- package/dist/agent-runtime/efficiency-types.d.ts +60 -0
- package/dist/agent-runtime/efficiency-types.js +8 -0
- package/dist/agent-runtime/efficiency-types.js.map +1 -0
- package/dist/agent-runtime/efficiency.d.ts +5 -0
- package/dist/agent-runtime/efficiency.js +35 -0
- package/dist/agent-runtime/efficiency.js.map +1 -0
- package/dist/agent-runtime/evaluation-corpus.d.ts +13 -0
- package/dist/agent-runtime/evaluation-corpus.js +8 -0
- package/dist/agent-runtime/evaluation-corpus.js.map +1 -0
- package/dist/agent-runtime/evaluation.d.ts +43 -0
- package/dist/agent-runtime/evaluation.js +171 -0
- package/dist/agent-runtime/evaluation.js.map +1 -0
- package/dist/agent-runtime/executor-types.d.ts +125 -0
- package/dist/agent-runtime/executor-types.js +29 -0
- package/dist/agent-runtime/executor-types.js.map +1 -0
- package/dist/agent-runtime/executors.d.ts +23 -0
- package/dist/agent-runtime/executors.js +48 -0
- package/dist/agent-runtime/executors.js.map +1 -0
- package/dist/agent-runtime/gemini-policy.d.ts +8 -0
- package/dist/agent-runtime/gemini-policy.js +36 -0
- package/dist/agent-runtime/gemini-policy.js.map +1 -0
- package/dist/agent-runtime/graph/artifacts.d.ts +26 -0
- package/dist/agent-runtime/graph/artifacts.js +205 -0
- package/dist/agent-runtime/graph/artifacts.js.map +1 -0
- package/dist/agent-runtime/graph/nodes.d.ts +39 -0
- package/dist/agent-runtime/graph/nodes.js +321 -0
- package/dist/agent-runtime/graph/nodes.js.map +1 -0
- package/dist/agent-runtime/graph/review-policy.d.ts +18 -0
- package/dist/agent-runtime/graph/review-policy.js +32 -0
- package/dist/agent-runtime/graph/review-policy.js.map +1 -0
- package/dist/agent-runtime/graph/roles.d.ts +47 -0
- package/dist/agent-runtime/graph/roles.js +190 -0
- package/dist/agent-runtime/graph/roles.js.map +1 -0
- package/dist/agent-runtime/graph/state.d.ts +83 -0
- package/dist/agent-runtime/graph/state.js +23 -0
- package/dist/agent-runtime/graph/state.js.map +1 -0
- package/dist/agent-runtime/graph-checkpointer.d.ts +61 -0
- package/dist/agent-runtime/graph-checkpointer.js +137 -0
- package/dist/agent-runtime/graph-checkpointer.js.map +1 -0
- package/dist/agent-runtime/index.d.ts +20 -0
- package/dist/agent-runtime/index.js +21 -0
- package/dist/agent-runtime/index.js.map +1 -0
- package/dist/agent-runtime/kimi-acp.d.ts +11 -0
- package/dist/agent-runtime/kimi-acp.js +190 -0
- package/dist/agent-runtime/kimi-acp.js.map +1 -0
- package/dist/agent-runtime/openai-executor.d.ts +26 -0
- package/dist/agent-runtime/openai-executor.js +192 -0
- package/dist/agent-runtime/openai-executor.js.map +1 -0
- package/dist/agent-runtime/openspec-tool-server.d.ts +1 -0
- package/dist/agent-runtime/openspec-tool-server.js +37 -0
- package/dist/agent-runtime/openspec-tool-server.js.map +1 -0
- package/dist/agent-runtime/openspec.d.ts +123 -0
- package/dist/agent-runtime/openspec.js +263 -0
- package/dist/agent-runtime/openspec.js.map +1 -0
- package/dist/agent-runtime/prompts.d.ts +44 -0
- package/dist/agent-runtime/prompts.js +310 -0
- package/dist/agent-runtime/prompts.js.map +1 -0
- package/dist/agent-runtime/provider-diagnostic.d.ts +2 -0
- package/dist/agent-runtime/provider-diagnostic.js +25 -0
- package/dist/agent-runtime/provider-diagnostic.js.map +1 -0
- package/dist/agent-runtime/repository-context.d.ts +25 -0
- package/dist/agent-runtime/repository-context.js +100 -0
- package/dist/agent-runtime/repository-context.js.map +1 -0
- package/dist/agent-runtime/review-context.d.ts +14 -0
- package/dist/agent-runtime/review-context.js +41 -0
- package/dist/agent-runtime/review-context.js.map +1 -0
- package/dist/agent-runtime/role-routing.d.ts +10 -0
- package/dist/agent-runtime/role-routing.js +29 -0
- package/dist/agent-runtime/role-routing.js.map +1 -0
- package/dist/agent-runtime/role-state.d.ts +19 -0
- package/dist/agent-runtime/role-state.js +24 -0
- package/dist/agent-runtime/role-state.js.map +1 -0
- package/dist/agent-runtime/runtime-identity.d.ts +11 -0
- package/dist/agent-runtime/runtime-identity.js +33 -0
- package/dist/agent-runtime/runtime-identity.js.map +1 -0
- package/dist/agent-runtime/tool-event.d.ts +3 -0
- package/dist/agent-runtime/tool-event.js +24 -0
- package/dist/agent-runtime/tool-event.js.map +1 -0
- package/dist/agent-runtime/verification-plan.d.ts +55 -0
- package/dist/agent-runtime/verification-plan.js +206 -0
- package/dist/agent-runtime/verification-plan.js.map +1 -0
- package/dist/agent-runtime/workflow-types.d.ts +226 -0
- package/dist/agent-runtime/workflow-types.js +2 -0
- package/dist/agent-runtime/workflow-types.js.map +1 -0
- package/dist/agent-runtime/workflow.d.ts +17 -0
- package/dist/agent-runtime/workflow.js +636 -0
- package/dist/agent-runtime/workflow.js.map +1 -0
- package/dist/agent-runtime/workspace-tools.d.ts +29 -0
- package/dist/agent-runtime/workspace-tools.js +282 -0
- package/dist/agent-runtime/workspace-tools.js.map +1 -0
- package/dist/installer/cli.d.ts +35 -0
- package/dist/installer/cli.js +3 -0
- package/dist/installer/cli.js.map +1 -1
- package/dist/installer/commands/doctor.d.ts +27 -0
- package/dist/installer/commands/framework.d.ts +85 -0
- package/dist/installer/commands/init.d.ts +147 -0
- package/dist/installer/commands/update.d.ts +56 -0
- package/dist/installer/commands/v5-migration.d.ts +32 -0
- package/dist/installer/phases/framework-lifecycle.d.ts +53 -0
- package/dist/installer/phases/install-config.d.ts +64 -0
- package/dist/installer/phases/manifest.d.ts +45 -0
- package/dist/installer/phases/prereqs.d.ts +51 -0
- package/dist/installer/phases/provider-detect.d.ts +89 -0
- package/dist/installer/phases/scaffold.d.ts +211 -0
- package/dist/installer/phases/scaffold.js +39 -109
- package/dist/installer/phases/scaffold.js.map +1 -1
- package/dist/installer/runtime/kimi.d.ts +84 -0
- package/dist/installer/runtime/pipeline-state.d.ts +351 -0
- package/dist/installer/runtime/pipeline-state.js +514 -41
- package/dist/installer/runtime/pipeline-state.js.map +1 -1
- package/dist/installer/util/errors.d.ts +46 -0
- package/dist/installer/util/exec.d.ts +41 -0
- package/dist/installer/util/fs.d.ts +153 -0
- package/dist/installer/util/git.d.ts +44 -0
- package/dist/installer/util/install-transaction.d.ts +29 -0
- package/dist/installer/util/logger.d.ts +31 -0
- package/dist/installer/util/paths.d.ts +34 -0
- package/dist/installer/util/prompts.d.ts +23 -0
- package/dist/installer/util/registry.d.ts +174 -0
- package/dist/installer/util/template.d.ts +23 -0
- package/docs/README.md +1 -0
- package/docs/agent-runtime-efficiency.md +65 -0
- package/docs/agent-runtime.md +339 -0
- package/integration-contract.json +80 -7
- package/package.json +20 -2
- package/schemas/agent-runtime.schema.json +77 -0
- package/schemas/fixtures/runtime-efficiency-summary.v1.json +790 -0
- package/templates/codex-skills/batch-implement/SKILL.md +33 -58
- package/templates/codex-skills/implement/SKILL.md +21 -124
- package/templates/codex-skills/retry/SKILL.md +8 -34
- package/templates/commands/specrails/batch-implement.md +21 -16
- package/templates/commands/specrails/implement.md +17 -276
- package/templates/commands/specrails/retry.md +6 -34
- package/templates/gemini-commands/batch-implement.toml +34 -28
- package/templates/gemini-commands/implement.toml +34 -55
- package/templates/gemini-commands/retry.toml +10 -16
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RuntimeConfig } from '../executor-types.js';
|
|
2
|
+
import type { ReviewRecord } from './state.js';
|
|
3
|
+
export declare const REVIEW_ASPECTS: readonly ["type_correctness", "pattern_adherence", "test_coverage", "security", "architectural_alignment"];
|
|
4
|
+
export type ReviewAspect = typeof REVIEW_ASPECTS[number];
|
|
5
|
+
export interface ReviewPolicy {
|
|
6
|
+
/** Minimum overall score for approval, 0–100. */
|
|
7
|
+
minScore: number;
|
|
8
|
+
/** Minimum per-aspect score for approval, 0–100. */
|
|
9
|
+
aspects: Record<ReviewAspect, number>;
|
|
10
|
+
}
|
|
11
|
+
export declare const DEFAULT_REVIEW_POLICY: ReviewPolicy;
|
|
12
|
+
/** Project thresholds override the defaults per field; unset fields keep the default gate. */
|
|
13
|
+
export declare function resolveReviewPolicy(config: Pick<RuntimeConfig, 'review'>): ReviewPolicy;
|
|
14
|
+
/** Validates the reviewer's structured reply and applies the gate. Throws `Invalid …` for a malformed reply. */
|
|
15
|
+
export declare function evaluateReview(raw: Record<string, unknown>, policy: ReviewPolicy): {
|
|
16
|
+
record: ReviewRecord;
|
|
17
|
+
approved: boolean;
|
|
18
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { object } from './artifacts.js';
|
|
2
|
+
export const REVIEW_ASPECTS = ['type_correctness', 'pattern_adherence', 'test_coverage', 'security', 'architectural_alignment'];
|
|
3
|
+
export const DEFAULT_REVIEW_POLICY = {
|
|
4
|
+
minScore: 70,
|
|
5
|
+
aspects: { type_correctness: 60, pattern_adherence: 60, test_coverage: 60, security: 75, architectural_alignment: 60 },
|
|
6
|
+
};
|
|
7
|
+
/** Project thresholds override the defaults per field; unset fields keep the default gate. */
|
|
8
|
+
export function resolveReviewPolicy(config) {
|
|
9
|
+
return {
|
|
10
|
+
minScore: config.review?.minScore ?? DEFAULT_REVIEW_POLICY.minScore,
|
|
11
|
+
aspects: { ...DEFAULT_REVIEW_POLICY.aspects, ...(config.review?.aspects ?? {}) },
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/** Validates the reviewer's structured reply and applies the gate. Throws `Invalid …` for a malformed reply. */
|
|
15
|
+
export function evaluateReview(raw, policy) {
|
|
16
|
+
if (typeof raw.approved !== 'boolean' || typeof raw.summary !== 'string'
|
|
17
|
+
|| !Array.isArray(raw.issues) || !raw.issues.every(item => typeof item === 'string')
|
|
18
|
+
|| typeof raw.score !== 'number' || !Number.isFinite(raw.score) || raw.score < 0 || raw.score > 100)
|
|
19
|
+
throw new Error('Invalid structured review');
|
|
20
|
+
const aspects = object(raw.aspects);
|
|
21
|
+
const scored = {};
|
|
22
|
+
for (const name of REVIEW_ASPECTS) {
|
|
23
|
+
const value = aspects[name];
|
|
24
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || value < 0 || value > 100)
|
|
25
|
+
throw new Error('Invalid review aspect: ' + name);
|
|
26
|
+
scored[name] = value;
|
|
27
|
+
}
|
|
28
|
+
const approved = raw.approved && raw.issues.length === 0 && raw.score >= policy.minScore
|
|
29
|
+
&& REVIEW_ASPECTS.every(name => scored[name] >= policy.aspects[name]);
|
|
30
|
+
return { record: { approved: raw.approved, summary: raw.summary, issues: raw.issues, score: raw.score, aspects: scored }, approved };
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=review-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-policy.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/review-policy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGvC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,yBAAyB,CAAU,CAAA;AAQxI,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,uBAAuB,EAAE,EAAE,EAAE;CACvH,CAAA;AAED,8FAA8F;AAC9F,MAAM,UAAU,mBAAmB,CAAC,MAAqC;IACvE,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,qBAAqB,CAAC,QAAQ;QACnE,OAAO,EAAE,EAAE,GAAG,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;KACjF,CAAA;AACH,CAAC;AAED,gHAAgH;AAChH,MAAM,UAAU,cAAc,CAAC,GAA4B,EAAE,MAAoB;IAC/E,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;WACnE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;WACjF,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IACnJ,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACnC,MAAM,MAAM,GAA2B,EAAE,CAAA;IACzC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAA;QACvI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;IACtB,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ;WACnF,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACxE,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAkB,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAA;AAClJ,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type InvocationKind } from '../role-routing.js';
|
|
2
|
+
import { type PipelineContext } from '../../installer/runtime/pipeline-state.js';
|
|
3
|
+
import type { ExecutorRegistry } from '../executors.js';
|
|
4
|
+
import { type AgentEvent, type AgentResult, type AgentRole, type AgentUsage, type RuntimeConfig } from '../executor-types.js';
|
|
5
|
+
import type { WorkflowStepContext } from '../workflow-types.js';
|
|
6
|
+
/** Executor failures that mean "this session cannot be continued", not "the role failed". */
|
|
7
|
+
export declare const SESSION_FALLBACK_CODES: Set<string>;
|
|
8
|
+
export interface InvokeOptions {
|
|
9
|
+
kind?: InvocationKind;
|
|
10
|
+
prompt: string;
|
|
11
|
+
/** Parse the reply as one JSON object and hand it to `accept`. */
|
|
12
|
+
structured?: boolean;
|
|
13
|
+
/** Structured, but an unparseable reply is accepted as prose instead of repaired (`accept` gets `undefined`). */
|
|
14
|
+
lenient?: boolean;
|
|
15
|
+
outputSchema?: Record<string, unknown>;
|
|
16
|
+
resumeSessionId?: string;
|
|
17
|
+
/** Full prompt for a fresh session when the resumed session is unavailable. */
|
|
18
|
+
fallbackPrompt?: string;
|
|
19
|
+
}
|
|
20
|
+
export type InvokeOutcome<T> = {
|
|
21
|
+
ok: true;
|
|
22
|
+
value: T;
|
|
23
|
+
text: string;
|
|
24
|
+
result: AgentResult;
|
|
25
|
+
} | {
|
|
26
|
+
ok: false;
|
|
27
|
+
error: string;
|
|
28
|
+
};
|
|
29
|
+
/** Validates and converts a role's reply. Throwing `Invalid|Expected|requires|Duplicate|malformed` requests one repair turn. */
|
|
30
|
+
export type Accept<T> = (output: Record<string, unknown> | undefined, text: string, result: AgentResult) => T;
|
|
31
|
+
export type RoleInvoker = <T>(role: AgentRole, step: WorkflowStepContext, options: InvokeOptions, accept: Accept<T>) => Promise<InvokeOutcome<T>>;
|
|
32
|
+
export interface RoleInvokerDeps {
|
|
33
|
+
context: PipelineContext;
|
|
34
|
+
config: RuntimeConfig;
|
|
35
|
+
registry: ExecutorRegistry;
|
|
36
|
+
openspec?: Record<AgentRole, import('../openspec.js').OpenSpecRoleContext>;
|
|
37
|
+
onAgentEvent?: (role: AgentRole, event: AgentEvent) => void;
|
|
38
|
+
}
|
|
39
|
+
export declare function sumUsage(a: AgentUsage, b: AgentUsage): AgentUsage;
|
|
40
|
+
/**
|
|
41
|
+
* One role turn against the configured executor: budget-aware request, live
|
|
42
|
+
* event forwarding with repository-relative paths, structured parsing with a
|
|
43
|
+
* single in-session repair turn, and session fallback for corrections. Usage
|
|
44
|
+
* is reported to the step as soon as each provider call returns, so a later
|
|
45
|
+
* interrupt or failure never loses spend.
|
|
46
|
+
*/
|
|
47
|
+
export declare function createRoleInvoker(deps: RoleInvokerDeps): RoleInvoker;
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { repositoryContextSnapshot, renderRepositoryContext } from '../repository-context.js';
|
|
2
|
+
import { readRoleState, writeRoleState } from '../role-state.js';
|
|
3
|
+
import { fingerprint } from '../durable-store.js';
|
|
4
|
+
import { selectRoleRoute } from '../role-routing.js';
|
|
5
|
+
import { ROLE_SKILLS, OPENSPEC_VERSION, OpenSpecTools, OpenSpecParticipationError, openSpecRepairPrompt } from '../openspec.js';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { performance } from 'node:perf_hooks';
|
|
8
|
+
import { frozenAcceptanceCriteria, pipelineStateDirectory } from '../../installer/runtime/pipeline-state.js';
|
|
9
|
+
import { AgentExecutionError, unknownUsage } from '../executor-types.js';
|
|
10
|
+
import { sumCacheUsage } from '../efficiency-types.js';
|
|
11
|
+
import { ROLE_INSTRUCTIONS_VERSION, repairInstructions } from '../prompts.js';
|
|
12
|
+
import { parseAgentObject } from './artifacts.js';
|
|
13
|
+
/** Executor failures that mean "this session cannot be continued", not "the role failed". */
|
|
14
|
+
export const SESSION_FALLBACK_CODES = new Set(['session_not_found', 'session_expired', 'session_unsupported']);
|
|
15
|
+
const REPAIRABLE = /Invalid|Expected|requires|Duplicate|malformed/i;
|
|
16
|
+
export function sumUsage(a, b) {
|
|
17
|
+
const add = (x, y) => x === null || y === null ? null : x + y;
|
|
18
|
+
return { inputTokens: add(a.inputTokens, b.inputTokens), outputTokens: add(a.outputTokens, b.outputTokens), costUsd: add(a.costUsd, b.costUsd), ...sumCacheUsage([a, b]) };
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* One role turn against the configured executor: budget-aware request, live
|
|
22
|
+
* event forwarding with repository-relative paths, structured parsing with a
|
|
23
|
+
* single in-session repair turn, and session fallback for corrections. Usage
|
|
24
|
+
* is reported to the step as soon as each provider call returns, so a later
|
|
25
|
+
* interrupt or failure never loses spend.
|
|
26
|
+
*/
|
|
27
|
+
export function createRoleInvoker(deps) {
|
|
28
|
+
const { context, config, registry } = deps;
|
|
29
|
+
const roots = [...context.repositories.map(repo => repo.path)].sort((a, b) => b.length - a.length);
|
|
30
|
+
const relativize = (detail) => {
|
|
31
|
+
// Host logs read better with repository-relative paths; the tool call itself is unchanged.
|
|
32
|
+
for (const root of roots) {
|
|
33
|
+
if (detail === root)
|
|
34
|
+
return context.repositories.length > 1 ? path.basename(root) : '.';
|
|
35
|
+
if (detail.startsWith(root + path.sep))
|
|
36
|
+
return (context.repositories.length > 1 ? path.basename(root) + path.sep : '') + detail.slice(root.length + 1);
|
|
37
|
+
}
|
|
38
|
+
return detail;
|
|
39
|
+
};
|
|
40
|
+
const forward = (role, structured) => (event) => {
|
|
41
|
+
// The final JSON of a structured role is an artifact, not narration; the host
|
|
42
|
+
// reports what it did with it instead of echoing it into the log.
|
|
43
|
+
if (structured && event.kind === 'text' && /^\s*(\{|```)/.test(event.text ?? ''))
|
|
44
|
+
return;
|
|
45
|
+
const shaped = event.kind === 'tool-start' && event.detail ? { ...event, detail: relativize(event.detail) } : event;
|
|
46
|
+
try {
|
|
47
|
+
deps.onAgentEvent?.(role, shaped);
|
|
48
|
+
}
|
|
49
|
+
catch { /* Observer cannot replay agent effects. */ }
|
|
50
|
+
};
|
|
51
|
+
const note = (role, text) => { try {
|
|
52
|
+
deps.onAgentEvent?.(role, { kind: 'text', text });
|
|
53
|
+
}
|
|
54
|
+
catch { /* Observer cannot replay agent effects. */ } };
|
|
55
|
+
const execute = async (role, step, prompt, structured, extra) => {
|
|
56
|
+
const directory = deps.openspec?.[role].stateDirectory ?? path.join(pipelineStateDirectory(context), 'agent-workflow');
|
|
57
|
+
const saved = readRoleState(directory);
|
|
58
|
+
const budget = step.remainingBudget();
|
|
59
|
+
if (budget.maxTokens === 0 || budget.maxCostUsd === 0 || step.signal.aborted)
|
|
60
|
+
throw new AgentExecutionError('No budget remains for another role invocation', step.signal.aborted ? 'aborted' : 'budget_exhausted', { inputTokens: 0, outputTokens: 0, costUsd: 0 });
|
|
61
|
+
const kind = extra.kind ?? (extra.resumeSessionId ? 'correction' : 'initial');
|
|
62
|
+
const route = selectRoleRoute(role, config.agents[role], kind, step.checkpoint, saved.routes[role]);
|
|
63
|
+
const selected = route.selection;
|
|
64
|
+
const capabilities = await registry.capabilities(selected.provider, selected.model);
|
|
65
|
+
const identity = fingerprint({ role, selected, transport: capabilities.transport, instructionsVersion: ROLE_INSTRUCTIONS_VERSION, provider: config.providers.find(provider => provider.id === selected.provider) ?? selected.provider, definition: config.rolePrompts?.[role] ?? null, openspec: deps.openspec?.[role] ?? null, context });
|
|
66
|
+
const previous = saved.sessions[role];
|
|
67
|
+
const resumeSessionId = capabilities.continuation === 'supported' && previous?.identity === identity && previous.sessionId === extra.resumeSessionId ? extra.resumeSessionId : undefined;
|
|
68
|
+
const snapshot = repositoryContextSnapshot(context);
|
|
69
|
+
const incremental = Boolean(resumeSessionId && config.efficiency?.contextMode !== 'full');
|
|
70
|
+
const packet = renderRepositoryContext(snapshot, incremental ? previous?.context : undefined);
|
|
71
|
+
const rolePrompt = !resumeSessionId && extra.fallbackPrompt ? extra.fallbackPrompt : prompt;
|
|
72
|
+
const obligations = '\nCurrent frozen acceptance obligations (all remain required):\n' + JSON.stringify(frozenAcceptanceCriteria(context));
|
|
73
|
+
const fullPrompt = rolePrompt + obligations + '\n\n' + packet;
|
|
74
|
+
if (saved.routes[role]?.tier !== route.tier)
|
|
75
|
+
note(role, `Role route: ${selected.provider}/${selected.model ?? 'provider default'} — ${route.reason}`);
|
|
76
|
+
saved.routes[role] = { tier: route.tier, reason: route.reason, attemptId: step.attemptId };
|
|
77
|
+
writeRoleState(directory, saved);
|
|
78
|
+
const measurement = { provider: selected.provider, ...(selected.model ? { model: selected.model } : {}),
|
|
79
|
+
contextMode: incremental ? 'incremental' : 'full', promptBytes: Buffer.byteLength(fullPrompt), contextBytes: Buffer.byteLength(packet), handoffBytes: Buffer.byteLength(rolePrompt), requestedEffort: selected.effort ?? null,
|
|
80
|
+
kind, tier: route.tier, routeReason: route.reason };
|
|
81
|
+
const invocationIdentity = await step.reportInvocationStarted?.(measurement);
|
|
82
|
+
const started = performance.now();
|
|
83
|
+
let toolCalls = 0, succeeded = false, usageReported = false, usage = unknownUsage();
|
|
84
|
+
const onEvent = forward(role, structured);
|
|
85
|
+
try {
|
|
86
|
+
if (deps.openspec?.[role])
|
|
87
|
+
note(role, `OpenSpec ${OPENSPEC_VERSION}: ${ROLE_SKILLS[role]} (official skill document through scoped tools).`);
|
|
88
|
+
const result = await registry.execute(selected.provider, {
|
|
89
|
+
role, prompt: fullPrompt, openspec: deps.openspec?.[role] ? { ...deps.openspec[role], ...(role === 'architect' ? {} : { evidenceScope: { backlogRoot: context.backlogRoot, runId: context.runId } }) } : undefined, cwd: context.artifactRoot, allowedRoots: context.repositories.map(repo => repo.path),
|
|
90
|
+
model: selected.model, effort: selected.effort, maxTurns: selected.maxTurns, signal: step.signal,
|
|
91
|
+
timeoutMs: config.limits?.timeoutMs,
|
|
92
|
+
maxTokens: budget.maxTokens, maxCostUsd: budget.maxCostUsd,
|
|
93
|
+
resumeSessionId, outputSchema: extra.outputSchema, onEvent: event => { if (event.kind === 'tool-start')
|
|
94
|
+
toolCalls++; onEvent(event); },
|
|
95
|
+
});
|
|
96
|
+
usage = result.usage;
|
|
97
|
+
step.reportUsage(result.usage);
|
|
98
|
+
usageReported = true;
|
|
99
|
+
if (result.sessionId && /^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$/.test(result.sessionId))
|
|
100
|
+
saved.sessions[role] = { identity, sessionId: result.sessionId, context: snapshot };
|
|
101
|
+
else
|
|
102
|
+
delete saved.sessions[role];
|
|
103
|
+
writeRoleState(directory, saved);
|
|
104
|
+
succeeded = true;
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
if (!usageReported) {
|
|
109
|
+
usage = error instanceof AgentExecutionError ? error.usage : unknownUsage();
|
|
110
|
+
step.reportUsage(usage);
|
|
111
|
+
}
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
await step.reportInvocation?.({ ...measurement, ...invocationIdentity, status: succeeded ? 'succeeded' : 'failed', durationMs: Math.max(0, performance.now() - started), toolCalls, usage });
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
return async (role, step, options, accept) => {
|
|
119
|
+
const structured = options.structured === true;
|
|
120
|
+
const workflow = deps.openspec?.[role] ? new OpenSpecTools(deps.openspec[role]) : undefined;
|
|
121
|
+
const cursor = workflow?.participationCursor() ?? 0;
|
|
122
|
+
const evaluate = (result) => {
|
|
123
|
+
let output, parseError;
|
|
124
|
+
if (structured) {
|
|
125
|
+
try {
|
|
126
|
+
output = result.structured ?? parseAgentObject(result.text);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
parseError = error;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// A genuine architect question can precede artifact creation. Completed
|
|
133
|
+
// role results must prove this invocation used the workflow, not an old visit.
|
|
134
|
+
if (!(role === 'architect' && output?.confidence === 'low'))
|
|
135
|
+
workflow?.assertParticipation(cursor);
|
|
136
|
+
if (structured && !output && !options.lenient)
|
|
137
|
+
throw new Error('Invalid structured role response: ' + (parseError instanceof Error ? parseError.message : 'missing object'));
|
|
138
|
+
return { ok: true, value: accept(output, result.text, result), text: result.text, result };
|
|
139
|
+
};
|
|
140
|
+
try {
|
|
141
|
+
let result;
|
|
142
|
+
if (options.resumeSessionId && options.fallbackPrompt) {
|
|
143
|
+
// A correction pass continues the role's own session: the work it did and
|
|
144
|
+
// the reasons behind it are already in context.
|
|
145
|
+
try {
|
|
146
|
+
result = await execute(role, step, options.prompt, structured, { kind: options.kind, resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema, fallbackPrompt: options.fallbackPrompt });
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
if (!(error instanceof AgentExecutionError) || !SESSION_FALLBACK_CODES.has(error.code))
|
|
150
|
+
throw error;
|
|
151
|
+
note(role, `Previous ${role} session is unavailable; starting a fresh ${role} turn with the same instructions.`);
|
|
152
|
+
result = await execute(role, step, options.fallbackPrompt, structured, { kind: 'session-fallback', outputSchema: options.outputSchema });
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
result = await execute(role, step, options.prompt, structured, { kind: options.kind, resumeSessionId: options.resumeSessionId, outputSchema: options.outputSchema, fallbackPrompt: options.fallbackPrompt });
|
|
157
|
+
}
|
|
158
|
+
let problem, omittedWorkflow = false;
|
|
159
|
+
try {
|
|
160
|
+
return evaluate(result);
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
problem = error instanceof Error ? error.message : String(error);
|
|
164
|
+
omittedWorkflow = error instanceof OpenSpecParticipationError;
|
|
165
|
+
if (!omittedWorkflow && !REPAIRABLE.test(problem))
|
|
166
|
+
return { ok: false, error: problem };
|
|
167
|
+
}
|
|
168
|
+
// A single repair budget covers protocol omissions and malformed output.
|
|
169
|
+
// Use the same provider session when possible; sessionless APIs receive the
|
|
170
|
+
// complete original role prompt and existing artifacts, never another role.
|
|
171
|
+
const repair = omittedWorkflow ? openSpecRepairPrompt(workflow.context) : repairInstructions(role, problem);
|
|
172
|
+
note(role, omittedWorkflow
|
|
173
|
+
? `The ${role} omitted its required OpenSpec workflow; requesting one correction in the same role before accepting the result.`
|
|
174
|
+
: `The ${role} reply was not a valid result (${problem}); asking the same session to resend it.`);
|
|
175
|
+
const repaired = await execute(role, step, result.sessionId ? repair : (options.fallbackPrompt ?? options.prompt) + '\n' + repair, structured, { kind: 'repair', resumeSessionId: result.sessionId, outputSchema: options.outputSchema,
|
|
176
|
+
fallbackPrompt: (options.fallbackPrompt ?? options.prompt) + '\nPrevious response (bounded):\n' + result.text.slice(-32_000) + '\n' + repair,
|
|
177
|
+
});
|
|
178
|
+
try {
|
|
179
|
+
return evaluate(repaired);
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
return { ok: false, error: error instanceof Error ? error.message : String(error) };
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
return { ok: false, error: error instanceof Error ? error.message : String(error) };
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=roles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roles.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/roles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { VerificationCommand } from '../../installer/runtime/pipeline-state.js';
|
|
2
|
+
export type DesignConfidence = 'high' | 'medium' | 'low';
|
|
3
|
+
export interface ArchitectureRecord {
|
|
4
|
+
planningDepth?: 'focused' | 'full';
|
|
5
|
+
planningReason?: string;
|
|
6
|
+
referencePatterns?: string[];
|
|
7
|
+
riskFlags?: string[];
|
|
8
|
+
change: string;
|
|
9
|
+
tasks: number;
|
|
10
|
+
specs: string[];
|
|
11
|
+
confidence: DesignConfidence;
|
|
12
|
+
/** The single blocking question the architect could not answer from the code. */
|
|
13
|
+
question?: string;
|
|
14
|
+
/** True when a low-confidence design proceeded on stated assumptions instead of asking. */
|
|
15
|
+
assumed?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface DeveloperRecord {
|
|
18
|
+
summary: string;
|
|
19
|
+
provider: string;
|
|
20
|
+
sessionId?: string;
|
|
21
|
+
files: string[];
|
|
22
|
+
tests: string[];
|
|
23
|
+
verificationChecks?: import('../verification-plan.js').ProposedCheck[];
|
|
24
|
+
verification?: string;
|
|
25
|
+
incomplete: Array<{
|
|
26
|
+
task: string;
|
|
27
|
+
reason: string;
|
|
28
|
+
}>;
|
|
29
|
+
/** False when the provider returned prose instead of the structured summary. */
|
|
30
|
+
structured: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface VerificationRecord {
|
|
33
|
+
valid: boolean;
|
|
34
|
+
reason?: string;
|
|
35
|
+
receiptId?: string;
|
|
36
|
+
incompleteTasks?: string[];
|
|
37
|
+
unverifiedRepositories: string[];
|
|
38
|
+
commands: Array<{
|
|
39
|
+
evidenceId?: string;
|
|
40
|
+
repositoryId: string;
|
|
41
|
+
command: string;
|
|
42
|
+
args: string[];
|
|
43
|
+
exitCode: number | null;
|
|
44
|
+
output: string;
|
|
45
|
+
}>;
|
|
46
|
+
}
|
|
47
|
+
export interface ReviewRecord {
|
|
48
|
+
sessionId?: string;
|
|
49
|
+
manifest?: import('../review-context.js').ReviewManifest;
|
|
50
|
+
approved: boolean;
|
|
51
|
+
summary: string;
|
|
52
|
+
issues: string[];
|
|
53
|
+
score: number;
|
|
54
|
+
aspects: Record<string, number>;
|
|
55
|
+
candidateHash?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface ArchiveRecord {
|
|
58
|
+
archivePath: string;
|
|
59
|
+
deliveryOwner: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The Core implementation graph state. Every field is plain JSON so LangGraph
|
|
63
|
+
* checkpoints, the host ledger and the CLI status share one representation.
|
|
64
|
+
* Channel names never collide with node names (LangGraph forbids it).
|
|
65
|
+
*/
|
|
66
|
+
export declare const CoreState: import("@langchain/langgraph").AnnotationRoot<{
|
|
67
|
+
/** The frozen verification plan: configured commands plus the architect's proposals. */
|
|
68
|
+
plan: import("@langchain/langgraph").BaseChannel<VerificationCommand[], VerificationCommand[] | import("@langchain/langgraph").OverwriteValue<VerificationCommand[]>, unknown>;
|
|
69
|
+
unverifiedRepositories: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
|
|
70
|
+
architecture: import("@langchain/langgraph").BaseChannel<ArchitectureRecord | null, ArchitectureRecord | import("@langchain/langgraph").OverwriteValue<ArchitectureRecord | null> | null, unknown>;
|
|
71
|
+
development: import("@langchain/langgraph").BaseChannel<DeveloperRecord | null, DeveloperRecord | import("@langchain/langgraph").OverwriteValue<DeveloperRecord | null> | null, unknown>;
|
|
72
|
+
verifyResult: import("@langchain/langgraph").BaseChannel<VerificationRecord | null, VerificationRecord | import("@langchain/langgraph").OverwriteValue<VerificationRecord | null> | null, unknown>;
|
|
73
|
+
review: import("@langchain/langgraph").BaseChannel<ReviewRecord | null, ReviewRecord | import("@langchain/langgraph").OverwriteValue<ReviewRecord | null> | null, unknown>;
|
|
74
|
+
/** Answers the requester gave to architect questions, oldest first. */
|
|
75
|
+
answers: import("@langchain/langgraph").BaseChannel<string[], string[] | import("@langchain/langgraph").OverwriteValue<string[]>, unknown>;
|
|
76
|
+
/** Autonomous investigation passes the architect already spent on a low-confidence design. */
|
|
77
|
+
deepenPasses: import("@langchain/langgraph").BaseChannel<number, number | import("@langchain/langgraph").OverwriteValue<number>, unknown>;
|
|
78
|
+
archived: import("@langchain/langgraph").BaseChannel<ArchiveRecord | null, ArchiveRecord | import("@langchain/langgraph").OverwriteValue<ArchiveRecord | null> | null, unknown>;
|
|
79
|
+
}>;
|
|
80
|
+
export type CoreStateType = typeof CoreState.State;
|
|
81
|
+
export type CoreStateUpdate = typeof CoreState.Update;
|
|
82
|
+
export type CoreNodeId = 'architect' | 'developer' | 'verify' | 'reviewer' | 'archive';
|
|
83
|
+
export declare const CORE_NODE_ORDER: readonly CoreNodeId[];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Annotation } from '@langchain/langgraph';
|
|
2
|
+
const replace = () => ({ reducer: (_previous, next) => next });
|
|
3
|
+
/**
|
|
4
|
+
* The Core implementation graph state. Every field is plain JSON so LangGraph
|
|
5
|
+
* checkpoints, the host ledger and the CLI status share one representation.
|
|
6
|
+
* Channel names never collide with node names (LangGraph forbids it).
|
|
7
|
+
*/
|
|
8
|
+
export const CoreState = Annotation.Root({
|
|
9
|
+
/** The frozen verification plan: configured commands plus the architect's proposals. */
|
|
10
|
+
plan: Annotation({ ...replace(), default: () => [] }),
|
|
11
|
+
unverifiedRepositories: Annotation({ ...replace(), default: () => [] }),
|
|
12
|
+
architecture: Annotation({ ...replace(), default: () => null }),
|
|
13
|
+
development: Annotation({ ...replace(), default: () => null }),
|
|
14
|
+
verifyResult: Annotation({ ...replace(), default: () => null }),
|
|
15
|
+
review: Annotation({ ...replace(), default: () => null }),
|
|
16
|
+
/** Answers the requester gave to architect questions, oldest first. */
|
|
17
|
+
answers: Annotation({ reducer: (previous, next) => [...previous, ...next], default: () => [] }),
|
|
18
|
+
/** Autonomous investigation passes the architect already spent on a low-confidence design. */
|
|
19
|
+
deepenPasses: Annotation({ ...replace(), default: () => 0 }),
|
|
20
|
+
archived: Annotation({ ...replace(), default: () => null }),
|
|
21
|
+
});
|
|
22
|
+
export const CORE_NODE_ORDER = ['architect', 'developer', 'verify', 'reviewer', 'archive'];
|
|
23
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/agent-runtime/graph/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAkDjD,MAAM,OAAO,GAAG,GAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,SAAY,EAAE,IAAO,EAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AAE1E;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;IACvC,wFAAwF;IACxF,IAAI,EAAE,UAAU,CAAwB,EAAE,GAAG,OAAO,EAAyB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACnG,sBAAsB,EAAE,UAAU,CAAW,EAAE,GAAG,OAAO,EAAY,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC3F,YAAY,EAAE,UAAU,CAA4B,EAAE,GAAG,OAAO,EAA6B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACrH,WAAW,EAAE,UAAU,CAAyB,EAAE,GAAG,OAAO,EAA0B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9G,YAAY,EAAE,UAAU,CAA4B,EAAE,GAAG,OAAO,EAA6B,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACrH,MAAM,EAAE,UAAU,CAAsB,EAAE,GAAG,OAAO,EAAuB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACnG,uEAAuE;IACvE,OAAO,EAAE,UAAU,CAAW,EAAE,OAAO,EAAE,CAAC,QAAkB,EAAE,IAAc,EAAY,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IACvI,8FAA8F;IAC9F,YAAY,EAAE,UAAU,CAAS,EAAE,GAAG,OAAO,EAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;IAC5E,QAAQ,EAAE,UAAU,CAAuB,EAAE,GAAG,OAAO,EAAwB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;CACxG,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,eAAe,GAA0B,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { BaseCheckpointSaver, type ChannelVersions, type Checkpoint, type CheckpointListOptions, type CheckpointMetadata, type CheckpointTuple, type PendingWrite } from '@langchain/langgraph-checkpoint';
|
|
2
|
+
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
3
|
+
/** One serialized LangGraph value: the serializer's type tag plus base64 bytes. */
|
|
4
|
+
export interface SerializedBlob {
|
|
5
|
+
type: string;
|
|
6
|
+
data: string;
|
|
7
|
+
}
|
|
8
|
+
export interface SerializedCheckpointEntry {
|
|
9
|
+
threadId: string;
|
|
10
|
+
ns: string;
|
|
11
|
+
id: string;
|
|
12
|
+
parentId?: string;
|
|
13
|
+
checkpoint: SerializedBlob;
|
|
14
|
+
metadata: SerializedBlob;
|
|
15
|
+
}
|
|
16
|
+
export interface SerializedWriteEntry {
|
|
17
|
+
threadId: string;
|
|
18
|
+
ns: string;
|
|
19
|
+
checkpointId: string;
|
|
20
|
+
taskId: string;
|
|
21
|
+
idx: number;
|
|
22
|
+
channel: string;
|
|
23
|
+
value: SerializedBlob;
|
|
24
|
+
}
|
|
25
|
+
/** The complete LangGraph checkpoint history of one run, as stored inside the run envelope. */
|
|
26
|
+
export interface SerializedGraphStore {
|
|
27
|
+
format: 1;
|
|
28
|
+
checkpoints: SerializedCheckpointEntry[];
|
|
29
|
+
writes: SerializedWriteEntry[];
|
|
30
|
+
}
|
|
31
|
+
export interface GraphStoreIO {
|
|
32
|
+
/** The store persisted with the run, or undefined for a new run. */
|
|
33
|
+
load(): SerializedGraphStore | undefined;
|
|
34
|
+
/** Persist the complete store. The engine writes it atomically with the ledger. */
|
|
35
|
+
save(store: SerializedGraphStore): Promise<void>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* LangGraph checkpointer whose whole history lives inside the run's durable
|
|
39
|
+
* envelope. Every checkpoint or pending write is persisted through the same
|
|
40
|
+
* atomic file write as the host ledger, so traversal state and receipts can
|
|
41
|
+
* never disagree after a crash. Values are serialized by LangGraph's own
|
|
42
|
+
* serializer and stored as base64 so the envelope stays plain JSON.
|
|
43
|
+
*/
|
|
44
|
+
export declare class FileCheckpointSaver extends BaseCheckpointSaver {
|
|
45
|
+
private readonly io;
|
|
46
|
+
private readonly checkpoints;
|
|
47
|
+
private readonly writes;
|
|
48
|
+
constructor(io: GraphStoreIO);
|
|
49
|
+
/** A JSON snapshot of the complete store. */
|
|
50
|
+
serialize(): SerializedGraphStore;
|
|
51
|
+
private dump;
|
|
52
|
+
private load;
|
|
53
|
+
private persist;
|
|
54
|
+
private tuple;
|
|
55
|
+
private entries;
|
|
56
|
+
getTuple(config: RunnableConfig): Promise<CheckpointTuple | undefined>;
|
|
57
|
+
list(config: RunnableConfig, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple>;
|
|
58
|
+
put(config: RunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata, _newVersions: ChannelVersions): Promise<RunnableConfig>;
|
|
59
|
+
putWrites(config: RunnableConfig, writes: PendingWrite[], taskId: string): Promise<void>;
|
|
60
|
+
deleteThread(threadId: string): Promise<void>;
|
|
61
|
+
}
|