@namzu/sdk 3.0.0 → 3.2.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/CHANGELOG.md +223 -0
- package/dist/advisory/__tests__/consultation-context.test.d.ts +2 -0
- package/dist/advisory/__tests__/consultation-context.test.d.ts.map +1 -0
- package/dist/advisory/__tests__/consultation-context.test.js +124 -0
- package/dist/advisory/__tests__/consultation-context.test.js.map +1 -0
- package/dist/advisory/context.d.ts +25 -0
- package/dist/advisory/context.d.ts.map +1 -1
- package/dist/advisory/context.js +18 -0
- package/dist/advisory/context.js.map +1 -1
- package/dist/advisory/executor.d.ts.map +1 -1
- package/dist/advisory/executor.js +25 -3
- package/dist/advisory/executor.js.map +1 -1
- package/dist/compaction/__tests__/context-reducer.test.d.ts +2 -0
- package/dist/compaction/__tests__/context-reducer.test.d.ts.map +1 -0
- package/dist/compaction/__tests__/context-reducer.test.js +197 -0
- package/dist/compaction/__tests__/context-reducer.test.js.map +1 -0
- package/dist/compaction/factory.d.ts +7 -0
- package/dist/compaction/factory.d.ts.map +1 -1
- package/dist/compaction/factory.js +7 -0
- package/dist/compaction/factory.js.map +1 -1
- package/dist/compaction/index.d.ts +2 -0
- package/dist/compaction/index.d.ts.map +1 -1
- package/dist/compaction/index.js +1 -0
- package/dist/compaction/index.js.map +1 -1
- package/dist/compaction/interface.d.ts +13 -0
- package/dist/compaction/interface.d.ts.map +1 -1
- package/dist/compaction/managers/null.d.ts +3 -0
- package/dist/compaction/managers/null.d.ts.map +1 -1
- package/dist/compaction/managers/null.js +3 -0
- package/dist/compaction/managers/null.js.map +1 -1
- package/dist/compaction/managers/slidingWindow.d.ts +6 -0
- package/dist/compaction/managers/slidingWindow.d.ts.map +1 -1
- package/dist/compaction/managers/slidingWindow.js +6 -0
- package/dist/compaction/managers/slidingWindow.js.map +1 -1
- package/dist/compaction/managers/structured.d.ts +10 -0
- package/dist/compaction/managers/structured.d.ts.map +1 -1
- package/dist/compaction/managers/structured.js +10 -0
- package/dist/compaction/managers/structured.js.map +1 -1
- package/dist/compaction/reducer.d.ts +86 -0
- package/dist/compaction/reducer.d.ts.map +1 -0
- package/dist/compaction/reducer.js +77 -0
- package/dist/compaction/reducer.js.map +1 -0
- package/dist/connector/builtins/__tests__/oauth2-auth.test.d.ts +2 -0
- package/dist/connector/builtins/__tests__/oauth2-auth.test.d.ts.map +1 -0
- package/dist/connector/builtins/__tests__/oauth2-auth.test.js +54 -0
- package/dist/connector/builtins/__tests__/oauth2-auth.test.js.map +1 -0
- package/dist/connector/builtins/http.d.ts.map +1 -1
- package/dist/connector/builtins/http.js +24 -2
- package/dist/connector/builtins/http.js.map +1 -1
- package/dist/connector/builtins/http.test.js +18 -2
- package/dist/connector/builtins/http.test.js.map +1 -1
- package/dist/connector/index.d.ts +2 -2
- package/dist/connector/index.d.ts.map +1 -1
- package/dist/connector/index.js +1 -1
- package/dist/connector/index.js.map +1 -1
- package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.d.ts +2 -0
- package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.d.ts.map +1 -0
- package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.js +214 -0
- package/dist/connector/mcp/__tests__/prompts-and-lifecycle.test.js.map +1 -0
- package/dist/connector/mcp/client.d.ts +52 -1
- package/dist/connector/mcp/client.d.ts.map +1 -1
- package/dist/connector/mcp/client.js +86 -0
- package/dist/connector/mcp/client.js.map +1 -1
- package/dist/connector/mcp/discovery.d.ts +12 -1
- package/dist/connector/mcp/discovery.d.ts.map +1 -1
- package/dist/connector/mcp/discovery.js +19 -4
- package/dist/connector/mcp/discovery.js.map +1 -1
- package/dist/connector/mcp/index.d.ts +2 -2
- package/dist/connector/mcp/index.d.ts.map +1 -1
- package/dist/connector/mcp/index.js +1 -1
- package/dist/connector/mcp/index.js.map +1 -1
- package/dist/connector/mcp/server.d.ts +42 -1
- package/dist/connector/mcp/server.d.ts.map +1 -1
- package/dist/connector/mcp/server.js +77 -4
- package/dist/connector/mcp/server.js.map +1 -1
- package/dist/manager/agent/__tests__/depth-limit-authority.test.d.ts +2 -0
- package/dist/manager/agent/__tests__/depth-limit-authority.test.d.ts.map +1 -0
- package/dist/manager/agent/__tests__/depth-limit-authority.test.js +58 -0
- package/dist/manager/agent/__tests__/depth-limit-authority.test.js.map +1 -0
- package/dist/plugin/__tests__/discovery-scopes.test.d.ts +2 -0
- package/dist/plugin/__tests__/discovery-scopes.test.d.ts.map +1 -0
- package/dist/plugin/__tests__/discovery-scopes.test.js +97 -0
- package/dist/plugin/__tests__/discovery-scopes.test.js.map +1 -0
- package/dist/plugin/__tests__/enable-contributions.test.js +5 -1
- package/dist/plugin/__tests__/enable-contributions.test.js.map +1 -1
- package/dist/plugin/__tests__/mcp-admission.test.d.ts +2 -0
- package/dist/plugin/__tests__/mcp-admission.test.d.ts.map +1 -0
- package/dist/plugin/__tests__/mcp-admission.test.js +192 -0
- package/dist/plugin/__tests__/mcp-admission.test.js.map +1 -0
- package/dist/plugin/lifecycle.d.ts +41 -0
- package/dist/plugin/lifecycle.d.ts.map +1 -1
- package/dist/plugin/lifecycle.js +29 -1
- package/dist/plugin/lifecycle.js.map +1 -1
- package/dist/plugin/loader.d.ts +39 -3
- package/dist/plugin/loader.d.ts.map +1 -1
- package/dist/plugin/loader.js +37 -4
- package/dist/plugin/loader.js.map +1 -1
- package/dist/public-runtime.d.ts +5 -3
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +11 -3
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-types.d.ts +2 -2
- package/dist/public-types.d.ts.map +1 -1
- package/dist/rag/__tests__/namespace-isolation.test.d.ts +2 -0
- package/dist/rag/__tests__/namespace-isolation.test.d.ts.map +1 -0
- package/dist/rag/__tests__/namespace-isolation.test.js +80 -0
- package/dist/rag/__tests__/namespace-isolation.test.js.map +1 -0
- package/dist/rag/ingestion.d.ts.map +1 -1
- package/dist/rag/ingestion.js +1 -0
- package/dist/rag/ingestion.js.map +1 -1
- package/dist/rag/retriever.d.ts.map +1 -1
- package/dist/rag/retriever.js +2 -0
- package/dist/rag/retriever.js.map +1 -1
- package/dist/rag/vector-store.d.ts.map +1 -1
- package/dist/rag/vector-store.js +6 -0
- package/dist/rag/vector-store.js.map +1 -1
- package/dist/registry/tool/execute.d.ts.map +1 -1
- package/dist/registry/tool/execute.js +113 -109
- package/dist/registry/tool/execute.js.map +1 -1
- package/dist/runtime/query/__tests__/capability-negotiation.test.js +59 -0
- package/dist/runtime/query/__tests__/capability-negotiation.test.js.map +1 -1
- package/dist/runtime/query/__tests__/per-step-skills.test.d.ts +10 -0
- package/dist/runtime/query/__tests__/per-step-skills.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/per-step-skills.test.js +122 -0
- package/dist/runtime/query/__tests__/per-step-skills.test.js.map +1 -0
- package/dist/runtime/query/__tests__/per-step-tool-choice.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/per-step-tool-choice.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/per-step-tool-choice.test.js +153 -0
- package/dist/runtime/query/__tests__/per-step-tool-choice.test.js.map +1 -0
- package/dist/runtime/query/__tests__/resume-run.test.d.ts +2 -0
- package/dist/runtime/query/__tests__/resume-run.test.d.ts.map +1 -0
- package/dist/runtime/query/__tests__/resume-run.test.js +211 -0
- package/dist/runtime/query/__tests__/resume-run.test.js.map +1 -0
- package/dist/runtime/query/executor.d.ts +1 -0
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +10 -1
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/index.d.ts +10 -0
- package/dist/runtime/query/index.d.ts.map +1 -1
- package/dist/runtime/query/index.js +26 -0
- package/dist/runtime/query/index.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +118 -34
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction-model-routing.test.d.ts +2 -0
- package/dist/runtime/query/iteration/phases/compaction-model-routing.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/compaction-model-routing.test.js +96 -0
- package/dist/runtime/query/iteration/phases/compaction-model-routing.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +95 -5
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.d.ts +2 -0
- package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.d.ts.map +1 -0
- package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.js +180 -0
- package/dist/runtime/query/iteration/phases/context-reducer-dispatch.test.js.map +1 -0
- package/dist/runtime/query/iteration/phases/context.d.ts +9 -0
- package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/context.js.map +1 -1
- package/dist/runtime/query/resume-run.d.ts +70 -0
- package/dist/runtime/query/resume-run.d.ts.map +1 -0
- package/dist/runtime/query/resume-run.js +46 -0
- package/dist/runtime/query/resume-run.js.map +1 -0
- package/dist/telemetry/__tests__/model-call-span.test.d.ts +2 -0
- package/dist/telemetry/__tests__/model-call-span.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/model-call-span.test.js +147 -0
- package/dist/telemetry/__tests__/model-call-span.test.js.map +1 -0
- package/dist/telemetry/__tests__/span-closure.test.d.ts +2 -0
- package/dist/telemetry/__tests__/span-closure.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/span-closure.test.js +124 -0
- package/dist/telemetry/__tests__/span-closure.test.js.map +1 -0
- package/dist/tools/advisory/index.js +1 -1
- package/dist/tools/advisory/index.js.map +1 -1
- package/dist/tools/builtins/__tests__/edit-commits-atomically.test.d.ts +2 -0
- package/dist/tools/builtins/__tests__/edit-commits-atomically.test.d.ts.map +1 -0
- package/dist/tools/builtins/__tests__/edit-commits-atomically.test.js +78 -0
- package/dist/tools/builtins/__tests__/edit-commits-atomically.test.js.map +1 -0
- package/dist/tools/builtins/__tests__/edit.test.js +242 -1
- package/dist/tools/builtins/__tests__/edit.test.js.map +1 -1
- package/dist/tools/builtins/__tests__/stale-file-refusal.test.d.ts +2 -0
- package/dist/tools/builtins/__tests__/stale-file-refusal.test.d.ts.map +1 -0
- package/dist/tools/builtins/__tests__/stale-file-refusal.test.js +187 -0
- package/dist/tools/builtins/__tests__/stale-file-refusal.test.js.map +1 -0
- package/dist/tools/builtins/atomic-write-file.d.ts +1 -1
- package/dist/tools/builtins/atomic-write-file.d.ts.map +1 -1
- package/dist/tools/builtins/atomic-write-file.js +31 -2
- package/dist/tools/builtins/atomic-write-file.js.map +1 -1
- package/dist/tools/builtins/content-fingerprint.d.ts +23 -0
- package/dist/tools/builtins/content-fingerprint.d.ts.map +1 -0
- package/dist/tools/builtins/content-fingerprint.js +30 -0
- package/dist/tools/builtins/content-fingerprint.js.map +1 -0
- package/dist/tools/builtins/edit.d.ts.map +1 -1
- package/dist/tools/builtins/edit.js +172 -31
- package/dist/tools/builtins/edit.js.map +1 -1
- package/dist/tools/builtins/read-file.d.ts.map +1 -1
- package/dist/tools/builtins/read-file.js +5 -2
- package/dist/tools/builtins/read-file.js.map +1 -1
- package/dist/tools/builtins/write-file.d.ts.map +1 -1
- package/dist/tools/builtins/write-file.js +75 -27
- package/dist/tools/builtins/write-file.js.map +1 -1
- package/dist/tools/coordinator/__tests__/ask-user-question.test.js +55 -0
- package/dist/tools/coordinator/__tests__/ask-user-question.test.js.map +1 -1
- package/dist/tools/coordinator/__tests__/plan-dependencies.test.d.ts +2 -0
- package/dist/tools/coordinator/__tests__/plan-dependencies.test.d.ts.map +1 -0
- package/dist/tools/coordinator/__tests__/plan-dependencies.test.js +126 -0
- package/dist/tools/coordinator/__tests__/plan-dependencies.test.js.map +1 -0
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +75 -5
- package/dist/tools/coordinator/index.js.map +1 -1
- package/dist/tools/coordinator/plan-dependencies.d.ts +43 -0
- package/dist/tools/coordinator/plan-dependencies.d.ts.map +1 -0
- package/dist/tools/coordinator/plan-dependencies.js +148 -0
- package/dist/tools/coordinator/plan-dependencies.js.map +1 -0
- package/dist/types/agent/supervisor.d.ts +15 -0
- package/dist/types/agent/supervisor.d.ts.map +1 -1
- package/dist/types/connector/core.d.ts +34 -0
- package/dist/types/connector/core.d.ts.map +1 -1
- package/dist/types/connector/definition.d.ts +10 -0
- package/dist/types/connector/definition.d.ts.map +1 -1
- package/dist/types/connector/mcp.d.ts +13 -0
- package/dist/types/connector/mcp.d.ts.map +1 -1
- package/dist/types/rag/retrieval.d.ts +16 -0
- package/dist/types/rag/retrieval.d.ts.map +1 -1
- package/dist/types/rag/storage.d.ts +9 -0
- package/dist/types/rag/storage.d.ts.map +1 -1
- package/dist/types/rag/vector.d.ts +11 -0
- package/dist/types/rag/vector.d.ts.map +1 -1
- package/dist/types/router/task-router.d.ts +19 -0
- package/dist/types/router/task-router.d.ts.map +1 -1
- package/dist/types/run/prepare-step.d.ts +56 -3
- package/dist/types/run/prepare-step.d.ts.map +1 -1
- package/dist/types/tool/index.d.ts +17 -1
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/index.js.map +1 -1
- package/dist/types/toolset/index.d.ts +22 -0
- package/dist/types/toolset/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/advisory/__tests__/consultation-context.test.ts +191 -0
- package/src/advisory/context.ts +32 -0
- package/src/advisory/executor.ts +30 -3
- package/src/compaction/__tests__/context-reducer.test.ts +239 -0
- package/src/compaction/factory.ts +7 -0
- package/src/compaction/index.ts +8 -0
- package/src/compaction/interface.ts +13 -0
- package/src/compaction/managers/null.ts +3 -0
- package/src/compaction/managers/slidingWindow.ts +6 -0
- package/src/compaction/managers/structured.ts +10 -0
- package/src/compaction/reducer.ts +154 -0
- package/src/connector/builtins/__tests__/oauth2-auth.test.ts +73 -0
- package/src/connector/builtins/http.test.ts +28 -2
- package/src/connector/builtins/http.ts +26 -2
- package/src/connector/index.ts +6 -2
- package/src/connector/mcp/__tests__/prompts-and-lifecycle.test.ts +286 -0
- package/src/connector/mcp/client.ts +95 -0
- package/src/connector/mcp/discovery.ts +19 -4
- package/src/connector/mcp/index.ts +6 -2
- package/src/connector/mcp/server.ts +101 -3
- package/src/manager/agent/__tests__/depth-limit-authority.test.ts +74 -0
- package/src/plugin/__tests__/discovery-scopes.test.ts +133 -0
- package/src/plugin/__tests__/enable-contributions.test.ts +5 -1
- package/src/plugin/__tests__/mcp-admission.test.ts +242 -0
- package/src/plugin/lifecycle.ts +57 -1
- package/src/plugin/loader.ts +57 -3
- package/src/public-runtime.ts +16 -1
- package/src/public-types.ts +5 -0
- package/src/rag/__tests__/namespace-isolation.test.ts +109 -0
- package/src/rag/ingestion.ts +1 -0
- package/src/rag/retriever.ts +2 -0
- package/src/rag/vector-store.ts +5 -0
- package/src/registry/tool/execute.ts +123 -119
- package/src/runtime/query/__tests__/capability-negotiation.test.ts +69 -0
- package/src/runtime/query/__tests__/per-step-skills.test.ts +154 -0
- package/src/runtime/query/__tests__/per-step-tool-choice.test.ts +180 -0
- package/src/runtime/query/__tests__/resume-run.test.ts +262 -0
- package/src/runtime/query/executor.ts +9 -1
- package/src/runtime/query/index.ts +39 -0
- package/src/runtime/query/iteration/index.ts +130 -34
- package/src/runtime/query/iteration/phases/compaction-model-routing.test.ts +125 -0
- package/src/runtime/query/iteration/phases/compaction.ts +106 -5
- package/src/runtime/query/iteration/phases/context-reducer-dispatch.test.ts +238 -0
- package/src/runtime/query/iteration/phases/context.ts +11 -0
- package/src/runtime/query/resume-run.ts +93 -0
- package/src/telemetry/__tests__/model-call-span.test.ts +189 -0
- package/src/telemetry/__tests__/span-closure.test.ts +153 -0
- package/src/tools/advisory/index.ts +1 -1
- package/src/tools/builtins/__tests__/edit-commits-atomically.test.ts +103 -0
- package/src/tools/builtins/__tests__/edit.test.ts +324 -1
- package/src/tools/builtins/__tests__/stale-file-refusal.test.ts +258 -0
- package/src/tools/builtins/atomic-write-file.ts +30 -2
- package/src/tools/builtins/content-fingerprint.ts +33 -0
- package/src/tools/builtins/edit.ts +188 -36
- package/src/tools/builtins/read-file.ts +5 -2
- package/src/tools/builtins/write-file.ts +79 -28
- package/src/tools/coordinator/__tests__/ask-user-question.test.ts +68 -0
- package/src/tools/coordinator/__tests__/plan-dependencies.test.ts +186 -0
- package/src/tools/coordinator/index.ts +116 -42
- package/src/tools/coordinator/plan-dependencies.ts +175 -0
- package/src/types/agent/supervisor.ts +15 -0
- package/src/types/connector/core.ts +34 -0
- package/src/types/connector/definition.ts +10 -0
- package/src/types/connector/mcp.ts +14 -0
- package/src/types/rag/retrieval.ts +16 -0
- package/src/types/rag/storage.ts +9 -0
- package/src/types/rag/vector.ts +11 -0
- package/src/types/router/task-router.ts +19 -0
- package/src/types/run/prepare-step.ts +58 -3
- package/src/types/tool/index.ts +17 -1
- package/src/types/toolset/index.ts +22 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/tools/builtins/edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"edit.js","sourceRoot":"","sources":["../../../src/tools/builtins/edit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/read-file.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,YAAY;;;;;
|
|
1
|
+
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/read-file.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,YAAY;;;;;EA0FvB,CAAA"}
|
|
@@ -46,7 +46,10 @@ export const ReadFileTool = defineTool({
|
|
|
46
46
|
const { start, end } = resolveReadWindow(input, lines.length);
|
|
47
47
|
const selectedLines = lines.slice(start, end);
|
|
48
48
|
const numberedLines = selectedLines.map((line, i) => `${start + i + 1}\t${line}`).join('\n');
|
|
49
|
-
|
|
49
|
+
// The WHOLE body, not the selected window: a later edit is checked
|
|
50
|
+
// against the file, and a partial read must not fingerprint a
|
|
51
|
+
// fragment as if it were the file.
|
|
52
|
+
context.fileReadTracker?.recordRead(input.path, content);
|
|
50
53
|
const partial = selectedLines.length < lines.length;
|
|
51
54
|
return {
|
|
52
55
|
success: true,
|
|
@@ -78,7 +81,7 @@ export const ReadFileTool = defineTool({
|
|
|
78
81
|
const { start, end } = resolveReadWindow(input, lines.length);
|
|
79
82
|
const selectedLines = lines.slice(start, end);
|
|
80
83
|
const numberedLines = selectedLines.map((line, i) => `${start + i + 1}\t${line}`).join('\n');
|
|
81
|
-
context.fileReadTracker?.recordRead(filePath);
|
|
84
|
+
context.fileReadTracker?.recordRead(filePath, content);
|
|
82
85
|
const isPartial = selectedLines.length < lines.length;
|
|
83
86
|
return {
|
|
84
87
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../src/tools/builtins/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAC5E,SAAS,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACvE,QAAQ,EAAE;SACV,QAAQ,CACR,8GAA8G,CAC9G;IACF,MAAM,EAAE,CAAC,CAAC,MAAM;SACd,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,CAAC;IAClF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAC/E,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;IACtC,IAAI,EAAE,MAAM;IACZ,WAAW,EACV,+OAA+O;IAChP,WAAW;IACX,QAAQ,EAAE,YAAY;IACtB,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,IAAI;IAErB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO;QAC3B,iEAAiE;QACjE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACzD,MAAM,cAAc,GAAG,4BAA4B,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACvE,IAAI,cAAc,EAAE,CAAC;gBACpB,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,cAAc;oBACtB,IAAI,EAAE;wBACL,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,SAAS,EAAE,IAAI;wBACf,MAAM,EAAE,IAAI;qBACZ;iBACD,CAAA;YACF,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;YAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAE7C,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAE5F,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../../src/tools/builtins/read-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/write-file.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../../src/tools/builtins/write-file.ts"],"names":[],"mappings":"AA4DA,eAAO,MAAM,aAAa;;;;EAuExB,CAAA"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { access, mkdir
|
|
1
|
+
import { access, mkdir } from 'node:fs/promises';
|
|
2
2
|
import { dirname, resolve } from 'node:path';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { defineTool } from '../defineTool.js';
|
|
5
|
+
import { atomicWriteFile } from './atomic-write-file.js';
|
|
6
|
+
import { withFileMutationLock } from './file-mutation-lock.js';
|
|
5
7
|
const inputSchema = z
|
|
6
8
|
.object({
|
|
7
9
|
path: z
|
|
@@ -17,51 +19,97 @@ const inputSchema = z
|
|
|
17
19
|
.optional()
|
|
18
20
|
.describe('Alias for content. Useful for hosts that expose create/write operations as newStr. Self-budget this payload under 12000 characters before calling.'),
|
|
19
21
|
})
|
|
22
|
+
.strict()
|
|
20
23
|
.refine((value) => typeof value.content === 'string' || typeof value.newStr === 'string', {
|
|
21
24
|
message: 'Either content or newStr is required.',
|
|
22
25
|
});
|
|
26
|
+
/**
|
|
27
|
+
* The single shape a model is constrained to emit.
|
|
28
|
+
*
|
|
29
|
+
* `newStr` is a host affordance and deliberately absent here: a model given
|
|
30
|
+
* two names for the body has to pick, and picking is what produces the
|
|
31
|
+
* half-filled calls this schema exists to prevent.
|
|
32
|
+
*/
|
|
33
|
+
const modelInputSchema = {
|
|
34
|
+
type: 'object',
|
|
35
|
+
properties: {
|
|
36
|
+
path: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Relative path to the file to write. Must not be empty.',
|
|
39
|
+
},
|
|
40
|
+
content: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
description: 'Complete file body. Use "" only for an intentionally empty file. Keep under 12000 characters.',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
required: ['path', 'content'],
|
|
46
|
+
additionalProperties: false,
|
|
47
|
+
};
|
|
23
48
|
export const WriteFileTool = defineTool({
|
|
24
49
|
name: 'write',
|
|
25
50
|
description: 'Writes a file to the local filesystem. Overwrites the existing file at the path if there is one.\n\n- If the file already exists, you must use the `read` tool on it first in this conversation, or this call will fail.\n- Prefer the `edit` tool for modifying existing files — it only sends the diff and preserves the rest of the file byte-for-byte.\n- Use `write` to create a new file or to perform a deliberate full rewrite of a file you have already read.\n- Self-budget content/newStr under 12000 characters before emitting the tool call. For long content, write a smaller opening section, then use `edit` with insertLine: "end" to extend the file section by section. Do not chain multiple `write` calls — each one overwrites the previous.',
|
|
26
51
|
inputSchema,
|
|
52
|
+
modelInputSchema,
|
|
53
|
+
enforceModelInput: true,
|
|
54
|
+
validationErrorHint: 'Required shape: {"path":"file.md","content":"complete file body"}. Pass the whole body, not a diff.',
|
|
27
55
|
category: 'filesystem',
|
|
28
56
|
permissions: ['file_write'],
|
|
29
57
|
readOnly: false,
|
|
30
58
|
destructive: true,
|
|
31
59
|
concurrencySafe: false,
|
|
32
60
|
async execute(input, context) {
|
|
33
|
-
|
|
34
|
-
//
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
61
|
+
// `execute` is reachable without going through the registry, so the
|
|
62
|
+
// closed contract has to be enforced on this path too or it is not
|
|
63
|
+
// closed at all.
|
|
64
|
+
const parsed = inputSchema.safeParse(input);
|
|
65
|
+
if (!parsed.success) {
|
|
66
|
+
return {
|
|
67
|
+
success: false,
|
|
68
|
+
output: '',
|
|
69
|
+
error: `Invalid write input: ${parsed.error.issues.map((issue) => issue.message).join('; ')}`,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const valid = parsed.data;
|
|
73
|
+
const content = valid.content ?? valid.newStr ?? '';
|
|
74
|
+
const filePath = resolve(context.workingDirectory, valid.path);
|
|
75
|
+
// The exists-check and the write are a check-then-act pair. Unlocked,
|
|
76
|
+
// two writers both see "absent", both skip the read-before-overwrite
|
|
77
|
+
// guard, and the second silently discards the first.
|
|
78
|
+
const lockKey = `${context.sandbox ? 'sandbox' : 'local'}:${filePath}`;
|
|
79
|
+
return withFileMutationLock(lockKey, async () => {
|
|
80
|
+
if (context.sandbox) {
|
|
81
|
+
const sandboxExists = await sandboxFileExists(context, valid.path);
|
|
82
|
+
if (sandboxExists) {
|
|
83
|
+
const guard = enforceReadBeforeOverwrite(context, valid.path);
|
|
84
|
+
if (guard)
|
|
85
|
+
return guard;
|
|
86
|
+
}
|
|
87
|
+
await context.sandbox.writeFile(valid.path, content);
|
|
88
|
+
context.fileReadTracker?.recordRead(valid.path);
|
|
89
|
+
return {
|
|
90
|
+
success: true,
|
|
91
|
+
output: `File written successfully: ${valid.path} (${content.length} chars) [sandboxed]`,
|
|
92
|
+
data: { path: valid.path, size: content.length, sandboxed: true },
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const localExists = await pathExists(filePath);
|
|
96
|
+
if (localExists) {
|
|
97
|
+
const guard = enforceReadBeforeOverwrite(context, filePath);
|
|
39
98
|
if (guard)
|
|
40
99
|
return guard;
|
|
41
100
|
}
|
|
42
|
-
await
|
|
43
|
-
|
|
101
|
+
await mkdir(dirname(filePath), { recursive: true });
|
|
102
|
+
// Temp file, fsync, rename. A plain write that fails partway
|
|
103
|
+
// leaves the destination truncated — and this tool overwrites a
|
|
104
|
+
// whole file, so the truncation is the user's previous work.
|
|
105
|
+
await atomicWriteFile(filePath, content);
|
|
106
|
+
context.fileReadTracker?.recordRead(filePath);
|
|
44
107
|
return {
|
|
45
108
|
success: true,
|
|
46
|
-
output: `File written successfully: ${
|
|
47
|
-
data: { path:
|
|
109
|
+
output: `File written successfully: ${filePath} (${content.length} chars)`,
|
|
110
|
+
data: { path: filePath, size: content.length },
|
|
48
111
|
};
|
|
49
|
-
}
|
|
50
|
-
const filePath = resolve(context.workingDirectory, input.path);
|
|
51
|
-
const localExists = await pathExists(filePath);
|
|
52
|
-
if (localExists) {
|
|
53
|
-
const guard = enforceReadBeforeOverwrite(context, filePath);
|
|
54
|
-
if (guard)
|
|
55
|
-
return guard;
|
|
56
|
-
}
|
|
57
|
-
await mkdir(dirname(filePath), { recursive: true });
|
|
58
|
-
await writeFile(filePath, content, 'utf-8');
|
|
59
|
-
context.fileReadTracker?.recordRead(filePath);
|
|
60
|
-
return {
|
|
61
|
-
success: true,
|
|
62
|
-
output: `File written successfully: ${filePath} (${content.length} chars)`,
|
|
63
|
-
data: { path: filePath, size: content.length },
|
|
64
|
-
};
|
|
112
|
+
});
|
|
65
113
|
},
|
|
66
114
|
});
|
|
67
115
|
function enforceReadBeforeOverwrite(context, key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/builtins/write-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"write-file.js","sourceRoot":"","sources":["../../../src/tools/builtins/write-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -306,4 +306,59 @@ describe('coordinator ask_user_question decision -> output mapping', () => {
|
|
|
306
306
|
expect(result.output).toBe('User answered "Who is the audience?": "Board"');
|
|
307
307
|
});
|
|
308
308
|
});
|
|
309
|
+
describe('the question contract is closed, not merely shaped', () => {
|
|
310
|
+
const noopHandler = async () => ({ action: 'continue' });
|
|
311
|
+
it('publishes one closed model-facing schema', () => {
|
|
312
|
+
const tool = askTool(noopHandler);
|
|
313
|
+
expect(tool.modelInputSchema).toMatchObject({
|
|
314
|
+
type: 'object',
|
|
315
|
+
required: ['question', 'options'],
|
|
316
|
+
additionalProperties: false,
|
|
317
|
+
});
|
|
318
|
+
// The whole point of the array declaration: a model that serializes
|
|
319
|
+
// its options once tends to keep doing it, and a closed schema makes
|
|
320
|
+
// a capable provider refuse at generation time instead of after.
|
|
321
|
+
const properties = tool.modelInputSchema
|
|
322
|
+
.properties;
|
|
323
|
+
expect(properties.options?.type).toBe('array');
|
|
324
|
+
expect(tool.enforceModelInput).toBe(true);
|
|
325
|
+
});
|
|
326
|
+
it('rejects a serialized options string and other malformed option shapes', () => {
|
|
327
|
+
const tool = askTool(noopHandler);
|
|
328
|
+
for (const options of [
|
|
329
|
+
'<options><option><label>Board</label></option></options>',
|
|
330
|
+
'[{"label":"Board"},{"label":"Engineering"}]',
|
|
331
|
+
[42, { label: 'Engineering' }],
|
|
332
|
+
[{ description: 'Missing label' }, { label: 'Engineering' }],
|
|
333
|
+
[{ label: 'Board', description: 42 }, { label: 'Engineering' }],
|
|
334
|
+
]) {
|
|
335
|
+
expect(tool.inputSchema.safeParse({ question: 'Who is the audience?', options }).success, JSON.stringify(options)).toBe(false);
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
it('rejects a field it does not declare, rather than dropping it', () => {
|
|
339
|
+
const tool = askTool(noopHandler);
|
|
340
|
+
const valid = {
|
|
341
|
+
question: 'Who is the audience?',
|
|
342
|
+
options: [{ label: 'Board' }, { label: 'Engineering' }],
|
|
343
|
+
};
|
|
344
|
+
expect(tool.inputSchema.safeParse(valid).success).toBe(true);
|
|
345
|
+
// Without `.strict()` zod strips these, so the call proceeds as if the
|
|
346
|
+
// caller had never written them — a misspelling becomes a silent no-op.
|
|
347
|
+
for (const extra of [
|
|
348
|
+
{ ...valid, multiSelct: true },
|
|
349
|
+
{ ...valid, choices: ['a', 'b'] },
|
|
350
|
+
{
|
|
351
|
+
...valid,
|
|
352
|
+
options: [{ label: 'Board', reason: 'why' }, { label: 'Engineering' }],
|
|
353
|
+
},
|
|
354
|
+
]) {
|
|
355
|
+
expect(tool.inputSchema.safeParse(extra).success, JSON.stringify(extra)).toBe(false);
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
it('carries a recovery hint that names the shape to retry with', () => {
|
|
359
|
+
const tool = askTool(noopHandler);
|
|
360
|
+
expect(tool.validationErrorHint).toContain('"options" must be a JSON array');
|
|
361
|
+
expect(tool.validationErrorHint).toContain('never a string');
|
|
362
|
+
});
|
|
363
|
+
});
|
|
309
364
|
//# sourceMappingURL=ask-user-question.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-user-question.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/ask-user-question.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ask-user-question.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/ask-user-question.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-dependencies.test.d.ts","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/plan-dependencies.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { resolvePlanDependencies } from '../plan-dependencies.js';
|
|
3
|
+
/**
|
|
4
|
+
* The model is shown `depends_on` on every plan step and told it means
|
|
5
|
+
* "Step descriptions this depends on". `approve_plan` then passed
|
|
6
|
+
* `dependsOn: []` for every step, so the ordering it declared was discarded
|
|
7
|
+
* at the only place it entered the system.
|
|
8
|
+
*
|
|
9
|
+
* The cost is not scheduling — the dependency gate in `PlanManager` has no
|
|
10
|
+
* callers — it is the approval. `dependsOn` is serialized into the
|
|
11
|
+
* `plan_approval` payload a human reads before saying yes, so the reviewer
|
|
12
|
+
* saw a plan whose steps all looked independent however carefully the model
|
|
13
|
+
* had ordered them.
|
|
14
|
+
*/
|
|
15
|
+
const id = (index) => `step_${index + 1}`;
|
|
16
|
+
describe('what the model described becomes what the plan holds', () => {
|
|
17
|
+
it('resolves a description to the step that carries it', () => {
|
|
18
|
+
const result = resolvePlanDependencies([
|
|
19
|
+
{ description: 'Read the config' },
|
|
20
|
+
{ description: 'Write the report', depends_on: ['Read the config'] },
|
|
21
|
+
], id);
|
|
22
|
+
expect(result).toEqual({ ok: true, dependsOn: [[], ['step_1']] });
|
|
23
|
+
});
|
|
24
|
+
it('resolves several dependencies on one step', () => {
|
|
25
|
+
const result = resolvePlanDependencies([
|
|
26
|
+
{ description: 'Read the config' },
|
|
27
|
+
{ description: 'Read the code' },
|
|
28
|
+
{ description: 'Write the report', depends_on: ['Read the config', 'Read the code'] },
|
|
29
|
+
], id);
|
|
30
|
+
expect(result.ok && result.dependsOn[2]).toEqual(['step_1', 'step_2']);
|
|
31
|
+
});
|
|
32
|
+
it('resolves a forward dependency, since order of declaration is not order of execution', () => {
|
|
33
|
+
const result = resolvePlanDependencies([
|
|
34
|
+
{ description: 'Write the report', depends_on: ['Read the config'] },
|
|
35
|
+
{ description: 'Read the config' },
|
|
36
|
+
], id);
|
|
37
|
+
expect(result.ok && result.dependsOn[0]).toEqual(['step_2']);
|
|
38
|
+
});
|
|
39
|
+
it('leaves a step with no dependencies empty', () => {
|
|
40
|
+
const result = resolvePlanDependencies([{ description: 'Read the config' }], id);
|
|
41
|
+
expect(result).toEqual({ ok: true, dependsOn: [[]] });
|
|
42
|
+
});
|
|
43
|
+
it('forgives whitespace and casing a model did not keep identical', () => {
|
|
44
|
+
const result = resolvePlanDependencies([
|
|
45
|
+
{ description: 'Read the config' },
|
|
46
|
+
{ description: 'Write', depends_on: ['read the CONFIG '] },
|
|
47
|
+
], id);
|
|
48
|
+
// Rejecting this would teach the model nothing, for a plan that was
|
|
49
|
+
// right.
|
|
50
|
+
expect(result.ok && result.dependsOn[1]).toEqual(['step_1']);
|
|
51
|
+
});
|
|
52
|
+
it('collapses the same dependency named twice', () => {
|
|
53
|
+
const result = resolvePlanDependencies([{ description: 'Read' }, { description: 'Write', depends_on: ['Read', 'Read'] }], id);
|
|
54
|
+
expect(result.ok && result.dependsOn[1]).toEqual(['step_1']);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe('a dependency that cannot mean anything is refused, not dropped', () => {
|
|
58
|
+
it('refuses a dependency naming no step', () => {
|
|
59
|
+
const result = resolvePlanDependencies([{ description: 'Write', depends_on: ['Read the config'] }], id);
|
|
60
|
+
expect(result.ok).toBe(false);
|
|
61
|
+
// The model has to be able to act on it, so the offending text is named.
|
|
62
|
+
expect(!result.ok && result.error).toContain('Read the config');
|
|
63
|
+
});
|
|
64
|
+
it('refuses a dependency two steps could answer', () => {
|
|
65
|
+
const result = resolvePlanDependencies([
|
|
66
|
+
{ description: 'Review' },
|
|
67
|
+
{ description: 'Review' },
|
|
68
|
+
{ description: 'Report', depends_on: ['Review'] },
|
|
69
|
+
], id);
|
|
70
|
+
// Picking either is a coin flip whose result a human then approves as
|
|
71
|
+
// if it were the model's intent.
|
|
72
|
+
expect(result.ok).toBe(false);
|
|
73
|
+
expect(!result.ok && result.error).toContain('2 steps share that description');
|
|
74
|
+
});
|
|
75
|
+
it('refuses a step that depends on itself', () => {
|
|
76
|
+
const result = resolvePlanDependencies([{ description: 'Loop', depends_on: ['Loop'] }], id);
|
|
77
|
+
expect(result.ok).toBe(false);
|
|
78
|
+
expect(!result.ok && result.error).toContain('depends on itself');
|
|
79
|
+
});
|
|
80
|
+
it('refuses a two-step cycle', () => {
|
|
81
|
+
const result = resolvePlanDependencies([
|
|
82
|
+
{ description: 'A', depends_on: ['B'] },
|
|
83
|
+
{ description: 'B', depends_on: ['A'] },
|
|
84
|
+
], id);
|
|
85
|
+
expect(result.ok).toBe(false);
|
|
86
|
+
expect(!result.ok && result.error).toContain('loop');
|
|
87
|
+
});
|
|
88
|
+
it('refuses a cycle several steps long', () => {
|
|
89
|
+
const result = resolvePlanDependencies([
|
|
90
|
+
{ description: 'A', depends_on: ['C'] },
|
|
91
|
+
{ description: 'B', depends_on: ['A'] },
|
|
92
|
+
{ description: 'C', depends_on: ['B'] },
|
|
93
|
+
], id);
|
|
94
|
+
// This is the failure worth catching hardest: no step in a loop can
|
|
95
|
+
// start, so the plan does not error — it simply stops.
|
|
96
|
+
expect(result.ok).toBe(false);
|
|
97
|
+
expect(!result.ok && result.error).toContain('loop');
|
|
98
|
+
});
|
|
99
|
+
it('names every step in the loop so it can be broken', () => {
|
|
100
|
+
const result = resolvePlanDependencies([
|
|
101
|
+
{ description: 'Alpha', depends_on: ['Gamma'] },
|
|
102
|
+
{ description: 'Beta' },
|
|
103
|
+
{ description: 'Gamma', depends_on: ['Alpha'] },
|
|
104
|
+
], id);
|
|
105
|
+
expect(result.ok).toBe(false);
|
|
106
|
+
if (result.ok)
|
|
107
|
+
return;
|
|
108
|
+
expect(result.error).toContain('Alpha');
|
|
109
|
+
expect(result.error).toContain('Gamma');
|
|
110
|
+
// Beta is not in the loop and must not be blamed for it.
|
|
111
|
+
expect(result.error).not.toContain('Beta');
|
|
112
|
+
});
|
|
113
|
+
it('accepts a diamond, which is not a cycle', () => {
|
|
114
|
+
const result = resolvePlanDependencies([
|
|
115
|
+
{ description: 'Start' },
|
|
116
|
+
{ description: 'Left', depends_on: ['Start'] },
|
|
117
|
+
{ description: 'Right', depends_on: ['Start'] },
|
|
118
|
+
{ description: 'Join', depends_on: ['Left', 'Right'] },
|
|
119
|
+
], id);
|
|
120
|
+
// Two paths reaching one step is an ordinary plan shape, and a naive
|
|
121
|
+
// visited-set cycle check calls it a loop.
|
|
122
|
+
expect(result.ok).toBe(true);
|
|
123
|
+
expect(result.ok && result.dependsOn[3]).toEqual(['step_2', 'step_3']);
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=plan-dependencies.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-dependencies.test.js","sourceRoot":"","sources":["../../../../src/tools/coordinator/__tests__/plan-dependencies.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,2BAA2B,CAAA;AAClF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI/D,MAAM,MAAM,oBAAoB,GAAG,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACL,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B,KACG,IAAI,CAAA;AAET,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,WAAW,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,eAAe,EAAE,MAAM,EAAE,CAAA;IAEzB,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IAE9C,cAAc,CAAC,EAAE,oBAAoB,CAAA;IAErC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;IAE7B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAA;IAEpC;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAC/B;AA6FD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,cAAc,EAAE,CAihBrF"}
|