@atom-workflow-agent/workflow-planner 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +39 -0
  3. package/README.zh-CN.md +39 -0
  4. package/dist/capabilities/capability-coverage-resolver.d.ts +5 -0
  5. package/dist/capabilities/capability-coverage-resolver.d.ts.map +1 -0
  6. package/dist/capabilities/capability-coverage-resolver.js +229 -0
  7. package/dist/capabilities/capability-coverage-resolver.js.map +1 -0
  8. package/dist/catalog/planner-catalog.d.ts +14 -0
  9. package/dist/catalog/planner-catalog.d.ts.map +1 -0
  10. package/dist/catalog/planner-catalog.js +47 -0
  11. package/dist/catalog/planner-catalog.js.map +1 -0
  12. package/dist/draft/planner-draft-normalizer.d.ts +20 -0
  13. package/dist/draft/planner-draft-normalizer.d.ts.map +1 -0
  14. package/dist/draft/planner-draft-normalizer.js +534 -0
  15. package/dist/draft/planner-draft-normalizer.js.map +1 -0
  16. package/dist/evaluation/planning-quality.d.ts +80 -0
  17. package/dist/evaluation/planning-quality.d.ts.map +1 -0
  18. package/dist/evaluation/planning-quality.js +120 -0
  19. package/dist/evaluation/planning-quality.js.map +1 -0
  20. package/dist/index.d.ts +13 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +13 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/model/planning-model-port.d.ts +41 -0
  25. package/dist/model/planning-model-port.d.ts.map +1 -0
  26. package/dist/model/planning-model-port.js +16 -0
  27. package/dist/model/planning-model-port.js.map +1 -0
  28. package/dist/planning/planning-controller.d.ts +77 -0
  29. package/dist/planning/planning-controller.d.ts.map +1 -0
  30. package/dist/planning/planning-controller.js +773 -0
  31. package/dist/planning/planning-controller.js.map +1 -0
  32. package/dist/store/local-plan-store.d.ts +57 -0
  33. package/dist/store/local-plan-store.d.ts.map +1 -0
  34. package/dist/store/local-plan-store.js +190 -0
  35. package/dist/store/local-plan-store.js.map +1 -0
  36. package/dist/store/plan-storage-layout.d.ts +14 -0
  37. package/dist/store/plan-storage-layout.d.ts.map +1 -0
  38. package/dist/store/plan-storage-layout.js +25 -0
  39. package/dist/store/plan-storage-layout.js.map +1 -0
  40. package/dist/validation/planning-draft-validator.d.ts +20 -0
  41. package/dist/validation/planning-draft-validator.d.ts.map +1 -0
  42. package/dist/validation/planning-draft-validator.js +76 -0
  43. package/dist/validation/planning-draft-validator.js.map +1 -0
  44. package/dist/workspace/map-aggregate-schema.d.ts +8 -0
  45. package/dist/workspace/map-aggregate-schema.d.ts.map +1 -0
  46. package/dist/workspace/map-aggregate-schema.js +20 -0
  47. package/dist/workspace/map-aggregate-schema.js.map +1 -0
  48. package/dist/workspace/planning-frontier.d.ts +15 -0
  49. package/dist/workspace/planning-frontier.d.ts.map +1 -0
  50. package/dist/workspace/planning-frontier.js +185 -0
  51. package/dist/workspace/planning-frontier.js.map +1 -0
  52. package/dist/workspace/planning-workspace-service.d.ts +72 -0
  53. package/dist/workspace/planning-workspace-service.d.ts.map +1 -0
  54. package/dist/workspace/planning-workspace-service.js +528 -0
  55. package/dist/workspace/planning-workspace-service.js.map +1 -0
  56. package/dist/workspace/semantic-plan-compiler.d.ts +19 -0
  57. package/dist/workspace/semantic-plan-compiler.d.ts.map +1 -0
  58. package/dist/workspace/semantic-plan-compiler.js +643 -0
  59. package/dist/workspace/semantic-plan-compiler.js.map +1 -0
  60. package/dist/workspace/strict-binding-validator.d.ts +9 -0
  61. package/dist/workspace/strict-binding-validator.d.ts.map +1 -0
  62. package/dist/workspace/strict-binding-validator.js +232 -0
  63. package/dist/workspace/strict-binding-validator.js.map +1 -0
  64. package/package.json +53 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning-quality.d.ts","sourceRoot":"","sources":["../../src/evaluation/planning-quality.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ export const STANDARD_PLANNING_CASES = Object.freeze([
2
+ { id: "serial", title: "简单串行", requiredStructures: ["sequence"] },
3
+ { id: "parallel-join", title: "并行与汇合", requiredStructures: ["sequence", "parallel"] },
4
+ { id: "n-way-decision", title: "N 路条件分支", requiredStructures: ["decision"] },
5
+ { id: "map", title: "集合映射处理", requiredStructures: ["map"] },
6
+ { id: "bounded-repeat", title: "有界修订回路", requiredStructures: ["repeat", "decision"] },
7
+ { id: "signal-host", title: "Signal 与 Host Model 暂停恢复", requiredStructures: ["sequence", "decision"] },
8
+ {
9
+ id: "travel-complex",
10
+ title: "旅行规划复杂链路",
11
+ requiredStructures: ["sequence", "parallel", "decision", "map", "repeat"],
12
+ },
13
+ ]);
14
+ function exactSet(left, right) {
15
+ if (left.length !== right.length)
16
+ return false;
17
+ const expected = new Set(right);
18
+ return left.every((value) => expected.has(value));
19
+ }
20
+ const DRAFT_NORMALIZATION_STAGES = new Set([
21
+ "draft-schema",
22
+ "atom-resolution",
23
+ "draft-normalization",
24
+ ]);
25
+ /** Converts one persisted planning audit into a provider-neutral evaluation sample. */
26
+ export function createPlanningQualitySample(input) {
27
+ const errorStages = input.audit.validationFeedback
28
+ .flatMap((feedback) => feedback.map((error) => error.stage))
29
+ .filter((stage) => stage !== undefined);
30
+ const selectedAtomKeys = input.audit.capabilityCoverage?.status === "covered"
31
+ ? input.audit.capabilityCoverage.selectedAtomKeys : [];
32
+ const firstTransactionAccepted = input.audit.workspaceAttempts[0]?.status === "committed"
33
+ && !errorStages.some((stage) => DRAFT_NORMALIZATION_STAGES.has(stage));
34
+ return Object.freeze({
35
+ caseId: input.caseId,
36
+ providerId: input.attempts[0]?.providerId ?? "unknown",
37
+ protocol: "planning-workspace",
38
+ capabilityCoverageExact: exactSet(selectedAtomKeys, input.expectedAtomKeys),
39
+ firstTransactionAccepted,
40
+ repairSucceeded: !firstTransactionAccepted && input.finalWorkflowValid,
41
+ finalWorkflowValid: input.finalWorkflowValid,
42
+ capabilityTurns: input.audit.metrics.capabilityTurns,
43
+ workspaceTurns: input.audit.metrics.workspaceTurns,
44
+ planningTurns: input.audit.metrics.planningTurns,
45
+ durationMs: input.audit.metrics.totalDurationMs,
46
+ catalogIndexBytes: input.audit.metrics.catalogIndexBytes,
47
+ planningCatalogBytes: input.audit.metrics.planningCatalogBytes,
48
+ promptPayloadBytes: input.audit.metrics.promptPayloadBytes,
49
+ ...(input.audit.metrics.tokenUsage ? { tokenUsage: input.audit.metrics.tokenUsage } : {}),
50
+ errorStages: Object.freeze(errorStages),
51
+ });
52
+ }
53
+ function average(samples, value) {
54
+ return samples.length === 0 ? 0 : samples.reduce((total, sample) => total + value(sample), 0) / samples.length;
55
+ }
56
+ function rate(samples, predicate) {
57
+ return samples.length === 0 ? 0 : samples.filter(predicate).length / samples.length;
58
+ }
59
+ function sumTokenUsage(samples) {
60
+ const usages = samples.flatMap((sample) => sample.tokenUsage ? [sample.tokenUsage] : []);
61
+ if (usages.length === 0)
62
+ return undefined;
63
+ const optional = (key) => {
64
+ const values = usages.flatMap((usage) => typeof usage[key] === "number" ? [usage[key]] : []);
65
+ return values.length ? values.reduce((total, value) => total + value, 0) : undefined;
66
+ };
67
+ const thoughtTokens = optional("thoughtTokens");
68
+ const cachedReadTokens = optional("cachedReadTokens");
69
+ const cachedWriteTokens = optional("cachedWriteTokens");
70
+ return {
71
+ totalTokens: usages.reduce((total, usage) => total + usage.totalTokens, 0),
72
+ inputTokens: usages.reduce((total, usage) => total + usage.inputTokens, 0),
73
+ outputTokens: usages.reduce((total, usage) => total + usage.outputTokens, 0),
74
+ ...(thoughtTokens !== undefined ? { thoughtTokens } : {}),
75
+ ...(cachedReadTokens !== undefined ? { cachedReadTokens } : {}),
76
+ ...(cachedWriteTokens !== undefined ? { cachedWriteTokens } : {}),
77
+ };
78
+ }
79
+ /** Aggregates comparable quality, size, latency and token metrics for Codex, Trae or future providers. */
80
+ export function summarizePlanningQuality(samples) {
81
+ const repairCandidates = samples.filter((sample) => !sample.firstTransactionAccepted);
82
+ const errorsByStage = {};
83
+ for (const stage of samples.flatMap((sample) => sample.errorStages)) {
84
+ errorsByStage[stage] = (errorsByStage[stage] ?? 0) + 1;
85
+ }
86
+ const totalTokenUsage = sumTokenUsage(samples);
87
+ return Object.freeze({
88
+ sampleCount: samples.length,
89
+ capabilityCoverageAccuracy: rate(samples, (sample) => sample.capabilityCoverageExact),
90
+ firstTransactionAcceptanceRate: rate(samples, (sample) => sample.firstTransactionAccepted),
91
+ repairSuccessRate: rate(repairCandidates, (sample) => sample.repairSucceeded),
92
+ finalWorkflowValidityRate: rate(samples, (sample) => sample.finalWorkflowValid),
93
+ averageCapabilityTurns: average(samples, (sample) => sample.capabilityTurns),
94
+ averageWorkspaceTurns: average(samples, (sample) => sample.workspaceTurns),
95
+ averagePlanningTurns: average(samples, (sample) => sample.planningTurns),
96
+ averageDurationMs: average(samples, (sample) => sample.durationMs),
97
+ averageCatalogIndexBytes: average(samples, (sample) => sample.catalogIndexBytes),
98
+ averagePlanningCatalogBytes: average(samples, (sample) => sample.planningCatalogBytes),
99
+ averagePromptPayloadBytes: average(samples, (sample) => sample.promptPayloadBytes),
100
+ ...(totalTokenUsage ? { totalTokenUsage } : {}),
101
+ errorsByStage: Object.freeze(errorsByStage),
102
+ });
103
+ }
104
+ /** Produces independent provider reports so Codex, Trae and future ACP agents remain comparable. */
105
+ export function summarizePlanningQualityByProvider(samples) {
106
+ const providers = [...new Set(samples.map((sample) => sample.providerId))].sort();
107
+ return Object.freeze(Object.fromEntries(providers.map((providerId) => [
108
+ providerId,
109
+ summarizePlanningQuality(samples.filter((sample) => sample.providerId === providerId)),
110
+ ])));
111
+ }
112
+ /** Compares the legacy complete WorkflowSpec baseline with the PlannerDraft protocol. */
113
+ export function summarizePlanningQualityByProtocol(samples) {
114
+ const protocols = [...new Set(samples.map((sample) => sample.protocol))].sort();
115
+ return Object.freeze(Object.fromEntries(protocols.map((protocol) => [
116
+ protocol,
117
+ summarizePlanningQuality(samples.filter((sample) => sample.protocol === protocol)),
118
+ ])));
119
+ }
120
+ //# sourceMappingURL=planning-quality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning-quality.js","sourceRoot":"","sources":["../../src/evaluation/planning-quality.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export * from "./planning/planning-controller.js";
2
+ export * from "./draft/planner-draft-normalizer.js";
3
+ export * from "./validation/planning-draft-validator.js";
4
+ export * from "./evaluation/planning-quality.js";
5
+ export * from "./workspace/planning-workspace-service.js";
6
+ export * from "./workspace/planning-frontier.js";
7
+ export * from "./workspace/strict-binding-validator.js";
8
+ export * from "./store/local-plan-store.js";
9
+ export * from "./store/plan-storage-layout.js";
10
+ export * from "./capabilities/capability-coverage-resolver.js";
11
+ export * from "./catalog/planner-catalog.js";
12
+ export * from "./model/planning-model-port.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ export * from "./planning/planning-controller.js";
2
+ export * from "./draft/planner-draft-normalizer.js";
3
+ export * from "./validation/planning-draft-validator.js";
4
+ export * from "./evaluation/planning-quality.js";
5
+ export * from "./workspace/planning-workspace-service.js";
6
+ export * from "./workspace/planning-frontier.js";
7
+ export * from "./workspace/strict-binding-validator.js";
8
+ export * from "./store/local-plan-store.js";
9
+ export * from "./store/plan-storage-layout.js";
10
+ export * from "./capabilities/capability-coverage-resolver.js";
11
+ export * from "./catalog/planner-catalog.js";
12
+ export * from "./model/planning-model-port.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { JsonValue, PlannerAttempt, PlannerResult, PlannerTurnInput } from "@atom-workflow-agent/contracts";
2
+ /** Model identity and workspace required by a planning adapter. */
3
+ export interface PlanningModelTarget {
4
+ readonly providerId: string;
5
+ readonly model: string;
6
+ readonly cwd: string;
7
+ }
8
+ /** Provider-neutral event retained for progress reporting and durable audit. */
9
+ export interface PlanningModelEvent {
10
+ readonly type: string;
11
+ readonly providerId: string;
12
+ readonly sessionId?: string;
13
+ readonly data: JsonValue;
14
+ }
15
+ export interface PlanningModelExecutionOptions {
16
+ readonly signal?: AbortSignal;
17
+ readonly totalTimeoutMs?: number | null;
18
+ readonly idleTimeoutMs?: number | null;
19
+ readonly onEvent?: (event: PlanningModelEvent) => void;
20
+ }
21
+ export interface PlanningModelSession {
22
+ readonly providerId: string;
23
+ readonly model: string;
24
+ readonly cwd: string;
25
+ readonly sessionId: string;
26
+ plan(input: PlannerTurnInput): Promise<PlannerResult>;
27
+ }
28
+ /** Adapter boundary used by the Planner. ACP is one implementation, not Planner policy. */
29
+ export interface PlanningModelPort {
30
+ withSession<T>(target: PlanningModelTarget, options: PlanningModelExecutionOptions, operation: (session: PlanningModelSession) => Promise<T>): Promise<T>;
31
+ }
32
+ /** Stable failure shape that any model adapter can expose to Planner repair logic. */
33
+ export declare class PlanningModelExecutionError extends Error {
34
+ readonly code: string;
35
+ readonly retryable: boolean;
36
+ readonly attempt: PlannerAttempt;
37
+ readonly rawOutput?: string | undefined;
38
+ readonly name = "PlanningModelExecutionError";
39
+ constructor(code: string, message: string, retryable: boolean, attempt: PlannerAttempt, rawOutput?: string | undefined, options?: ErrorOptions);
40
+ }
41
+ //# sourceMappingURL=planning-model-port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning-model-port.d.ts","sourceRoot":"","sources":["../../src/model/planning-model-port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EACjB,MAAM,gCAAgC,CAAC;AAExC,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACvD;AAED,2FAA2F;AAC3F,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,CAAC,EACX,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,6BAA6B,EACtC,SAAS,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,CAAC,CAAC,GACvD,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED,sFAAsF;AACtF,qBAAa,2BAA4B,SAAQ,KAAK;IAIlD,QAAQ,CAAC,IAAI,EAAE,MAAM;IAErB,QAAQ,CAAC,SAAS,EAAE,OAAO;IAC3B,QAAQ,CAAC,OAAO,EAAE,cAAc;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;IAP7B,QAAQ,CAAC,IAAI,iCAAiC;gBAGnC,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACN,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,YAAA,EAC3B,OAAO,CAAC,EAAE,YAAY;CAIzB"}
@@ -0,0 +1,16 @@
1
+ /** Stable failure shape that any model adapter can expose to Planner repair logic. */
2
+ export class PlanningModelExecutionError extends Error {
3
+ code;
4
+ retryable;
5
+ attempt;
6
+ rawOutput;
7
+ name = "PlanningModelExecutionError";
8
+ constructor(code, message, retryable, attempt, rawOutput, options) {
9
+ super(message, options);
10
+ this.code = code;
11
+ this.retryable = retryable;
12
+ this.attempt = attempt;
13
+ this.rawOutput = rawOutput;
14
+ }
15
+ }
16
+ //# sourceMappingURL=planning-model-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning-model-port.js","sourceRoot":"","sources":["../../src/model/planning-model-port.ts"],"names":[],"mappings":"AA8CA,sFAAsF;AACtF,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAIzC;IAEA;IACA;IACA;IAPF,IAAI,GAAG,6BAA6B,CAAC;IAE9C,YACW,IAAY,EACrB,OAAe,EACN,SAAkB,EAClB,OAAuB,EACvB,SAAkB,EAC3B,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAPf,SAAI,GAAJ,IAAI,CAAQ;QAEZ,cAAS,GAAT,SAAS,CAAS;QAClB,YAAO,GAAP,OAAO,CAAgB;QACvB,cAAS,GAAT,SAAS,CAAS;IAI7B,CAAC;CACF"}
@@ -0,0 +1,77 @@
1
+ import { type CapabilityCoverageResult, type PlannerAttempt, type PlannerAtomCatalog, type PlannerAtomCatalogIndex, type PlannerDraft, type PlannerInput, type PlannerTokenUsage, type PlanningCheckpoint, type PlanningTransactionResult, type PlanningWorkspaceSnapshot, type WorkflowIR, type WorkflowSpec, type WorkflowValidationError } from "@atom-workflow-agent/contracts";
2
+ import type { AtomRegistry } from "@atom-workflow-agent/atom-catalog";
3
+ import { type PlanningModelExecutionOptions, type PlanningModelPort, type PlanningModelTarget } from "../model/planning-model-port.js";
4
+ export interface PlanningControllerOptions {
5
+ readonly maxPlanningTurns?: number;
6
+ readonly maxCapabilityRepairs?: number;
7
+ readonly maxSelectedAtoms?: number;
8
+ readonly maxErrorsPerRepair?: number;
9
+ /** Absolute durable Plan directory whose full files may be inspected by a tool-capable planning model. */
10
+ readonly promptReferenceDirectory?: string;
11
+ readonly resumeCheckpoint?: PlanningCheckpoint;
12
+ readonly onCheckpoint?: (checkpoint: PlanningCheckpoint, audit: PlanningAudit, progress: {
13
+ readonly attempts: readonly PlannerAttempt[];
14
+ readonly rawOutputs: readonly string[];
15
+ }) => void | Promise<void>;
16
+ readonly model?: PlanningModelExecutionOptions;
17
+ }
18
+ export interface PlanningWorkspaceAttempt {
19
+ readonly requestId: string;
20
+ readonly planningTurn: number;
21
+ readonly rawOutput: string;
22
+ readonly status: "committed" | "rejected" | "finalized" | "blocked";
23
+ readonly result?: PlanningTransactionResult;
24
+ readonly errors: readonly WorkflowValidationError[];
25
+ }
26
+ export interface PlanningAudit {
27
+ readonly catalogIndex: PlannerAtomCatalogIndex;
28
+ readonly capabilityCoverage?: CapabilityCoverageResult;
29
+ readonly planningCatalog?: PlannerAtomCatalog;
30
+ readonly workspaceSnapshot?: PlanningWorkspaceSnapshot;
31
+ readonly workspaceAttempts: readonly PlanningWorkspaceAttempt[];
32
+ readonly plannerDraft?: PlannerDraft;
33
+ readonly validationFeedback: readonly (readonly WorkflowValidationError[])[];
34
+ readonly checkpoint: PlanningCheckpoint;
35
+ readonly metrics: {
36
+ readonly catalogAtomCount: number;
37
+ readonly selectedAtomCount: number;
38
+ readonly catalogIndexBytes: number;
39
+ readonly planningCatalogBytes: number;
40
+ readonly promptPayloadBytes: number;
41
+ readonly capabilityTurns: number;
42
+ readonly workspaceTurns: number;
43
+ readonly committedTransactions: number;
44
+ readonly rejectedTransactions: number;
45
+ readonly planningTurns: number;
46
+ readonly maxPlanningTurns: number;
47
+ readonly totalDurationMs: number;
48
+ readonly tokenUsage?: PlannerTokenUsage;
49
+ };
50
+ }
51
+ export interface PlanningSuccess {
52
+ readonly workflow: WorkflowSpec;
53
+ readonly ir: WorkflowIR;
54
+ readonly attempts: readonly PlannerAttempt[];
55
+ readonly rawOutputs: readonly string[];
56
+ readonly audit: PlanningAudit;
57
+ }
58
+ export declare class WorkflowPlanningFailedError extends Error {
59
+ readonly attempts: readonly PlannerAttempt[];
60
+ readonly validationErrors: readonly WorkflowValidationError[];
61
+ readonly rawOutputs: readonly string[];
62
+ readonly audit: PlanningAudit;
63
+ readonly code: string;
64
+ readonly retryable: boolean;
65
+ constructor(message: string, attempts: readonly PlannerAttempt[], validationErrors: readonly WorkflowValidationError[], rawOutputs: readonly string[], audit: PlanningAudit, options?: ErrorOptions & {
66
+ code?: string;
67
+ retryable?: boolean;
68
+ });
69
+ }
70
+ export declare class PlanningController {
71
+ private readonly planner;
72
+ private readonly registry;
73
+ private readonly now;
74
+ constructor(planner: PlanningModelPort, registry: AtomRegistry, now?: () => Date);
75
+ planAndCompile(input: PlannerInput, target: PlanningModelTarget, options?: PlanningControllerOptions): Promise<PlanningSuccess>;
76
+ }
77
+ //# sourceMappingURL=planning-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning-controller.d.ts","sourceRoot":"","sources":["../../src/planning/planning-controller.ts"],"names":[],"mappings":"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"}