@loomfsm/mcp-server 0.1.2 → 0.1.3
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/cc-adapter/commands/done.md +13 -4
- package/dist/src/bootstrap.js +27 -9
- package/dist/src/bootstrap.js.map +1 -1
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/server.d.ts +2 -1
- package/dist/src/server.js +22 -0
- package/dist/src/server.js.map +1 -1
- package/dist/src/tools/archive-reset.d.ts +5 -0
- package/dist/src/tools/archive-reset.js +53 -0
- package/dist/src/tools/archive-reset.js.map +1 -0
- package/dist/src/tools/run-task.js +16 -1
- package/dist/src/tools/run-task.js.map +1 -1
- package/dist/src/types.d.ts +15 -0
- package/package.json +5 -5
|
@@ -5,10 +5,17 @@ mcp_protocol_required: "^3.0"
|
|
|
5
5
|
# /done — review a finished task
|
|
6
6
|
|
|
7
7
|
<!--
|
|
8
|
-
Read-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
Read-then-rotate by design. This command presents the finished task's
|
|
9
|
+
review WITHOUT altering its outcome, then rotates the finished record into
|
|
10
|
+
history so the project is clear for the next task. The only state
|
|
11
|
+
transition it performs is that post-review archival of an ALREADY-FINISHED
|
|
12
|
+
task; it never edits a task's content, never acts on the user's behalf (no
|
|
13
|
+
commit, no code change), and never hand-edits the state DB. If the task is
|
|
14
|
+
stuck, the only repair path is the server-issued recovery options.
|
|
15
|
+
|
|
16
|
+
Sequencing matters: read and display the record FIRST, archive LAST — the
|
|
17
|
+
archive moves the state DB aside, so reading it afterward would find
|
|
18
|
+
nothing.
|
|
12
19
|
|
|
13
20
|
Bundle-neutral: it renders whatever the kernel's summary carries
|
|
14
21
|
(verdict, counts, outputs) and never assumes a particular kind of work.
|
|
@@ -22,9 +29,11 @@ mcp_protocol_required: "^3.0"
|
|
|
22
29
|
|
|
23
30
|
Call `mcp__loom__pipeline_state_get({ project_dir: <cwd>, format: "summary" })` to check readiness.
|
|
24
31
|
|
|
32
|
+
- If there is **no active task** (the summary reports none — e.g. it was already finished and archived) → tell the user there is nothing to review and stop.
|
|
25
33
|
- If the task is in an **error / stuck** state (or still has pending agents or an unanswered gate) → display the recovery options verbatim and call `mcp__loom__pipeline_recover({ project_dir, driver_state_id, choice })` with the option the user picks. Stop here; rerun `/done` once the task settles.
|
|
26
34
|
- Otherwise (in progress with nothing pending, or already completed):
|
|
27
35
|
1. Call `mcp__loom__pipeline_state_get({ project_dir, format: "json" })` for the final metrics.
|
|
28
36
|
2. Display the kernel summary to the user verbatim — verdict, agent count, outputs, key findings.
|
|
29
37
|
3. Optionally suggest a sensible next step for that result (for a code task that is usually a commit message). It is a suggestion only — the user acts on it.
|
|
30
38
|
4. Do **not** perform the next step yourself, do **not** auto-commit, and do **not** mutate state.
|
|
39
|
+
5. **Only if the task is finished** (status `completed` or `abandoned`): free the project's slot for the next task by calling `mcp__loom__pipeline_archive_and_reset({ project_dir })` **after** the summary above has been displayed. This archives the finished task's record into `.claude/history/` and clears the live slot, so the next `/task` starts clean. If the task is still in progress, skip this — it is not finished. If the tool reports nothing to reset, the slot is already clear.
|
package/dist/src/bootstrap.js
CHANGED
|
@@ -58,10 +58,23 @@ export function createAssembleRegistry(providers) {
|
|
|
58
58
|
function makeResolver(providers, cache) {
|
|
59
59
|
return function assemble(projectDir) {
|
|
60
60
|
const key = resolve(projectDir);
|
|
61
|
+
// Re-reconcile the manifest on EVERY call, before returning the registry
|
|
62
|
+
// (cached or freshly built). The task store is single-task: finishing a
|
|
63
|
+
// task rotates the whole store into history and frees the slot, which
|
|
64
|
+
// also drops the project's installed-extensions rows. Without a
|
|
65
|
+
// re-reconcile the next task would open a fresh, bundle-less store and
|
|
66
|
+
// refuse with "no enabled bundle". The reconcile is idempotent and
|
|
67
|
+
// cheap (it runs once per tool call, not per FSM tick), so restoring the
|
|
68
|
+
// manifest each time is safe; the expensive registry object — the loaded
|
|
69
|
+
// bundle with every agent template read off disk — is still built once
|
|
70
|
+
// per process and cached.
|
|
71
|
+
const ensured = ensureProjectReconciled(projectDir);
|
|
61
72
|
const cached = cache.get(key);
|
|
62
73
|
if (cached !== undefined)
|
|
63
|
-
return cached;
|
|
64
|
-
const building =
|
|
74
|
+
return ensured.then(() => cached);
|
|
75
|
+
const building = ensured
|
|
76
|
+
.then(() => buildRegistry(projectDir, providers))
|
|
77
|
+
.catch((err) => {
|
|
65
78
|
cache.delete(key);
|
|
66
79
|
throw err;
|
|
67
80
|
});
|
|
@@ -80,24 +93,29 @@ const defaultResolver = makeResolver([claudeCodeShuttleProvider], defaultResolve
|
|
|
80
93
|
export function assembleRegistry(projectDir) {
|
|
81
94
|
return defaultResolver(projectDir);
|
|
82
95
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
96
|
+
// Ensure the project store exists (migrations apply on first open) and
|
|
97
|
+
// carries the bundle manifest row. Idempotent: an unchanged manifest is
|
|
98
|
+
// left as-is. Run on every resolver call so a store that was rotated away
|
|
99
|
+
// since the last build is restored before the loader / the next task reads
|
|
100
|
+
// the installed-extensions table.
|
|
101
|
+
async function ensureProjectReconciled(projectDir) {
|
|
87
102
|
openDb(projectDir);
|
|
88
|
-
// Idempotent: an unchanged manifest row is left as-is.
|
|
89
103
|
await reconcileExtensions({
|
|
90
104
|
manifests: [{ path: BUNDLE_MANIFEST_SOURCE, raw: codeManifest }],
|
|
91
105
|
project_dir: projectDir,
|
|
92
|
-
now,
|
|
106
|
+
now: captureNow(),
|
|
93
107
|
});
|
|
108
|
+
}
|
|
109
|
+
async function buildRegistry(projectDir, providers) {
|
|
110
|
+
// The manifest is already reconciled by `ensureProjectReconciled` before
|
|
111
|
+
// this runs; the loader reads the installed-extensions row it left.
|
|
94
112
|
return await loadBundle({
|
|
95
113
|
bundle: codeBundle,
|
|
96
114
|
bundle_source_dir: bundleSourceDir,
|
|
97
115
|
project_dir: projectDir,
|
|
98
116
|
providers,
|
|
99
117
|
providers_config: readProvidersConfig(projectDir),
|
|
100
|
-
now,
|
|
118
|
+
now: captureNow(),
|
|
101
119
|
});
|
|
102
120
|
}
|
|
103
121
|
// Optional per-project provider routing, read from `.claude/providers.json`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,uBAAuB;AACvB,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,2CAA2C;AAC3C,EAAE;AACF,wEAAwE;AACxE,uEAAuE;AACvE,qCAAqC;AACrC,uEAAuE;AACvE,uEAAuE;AACvE,sEAAsE;AACtE,uEAAuE;AACvE,iEAAiE;AACjE,wEAAwE;AACxE,+BAA+B;AAC/B,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,uEAAuE;AACvE,yEAAyE;AACzE,yEAAyE;AACzE,+BAA+B;AAC/B,EAAE;AACF,wEAAwE;AACxE,wEAAwE;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,UAAU,EAAE,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,UAAU,EACV,UAAU,EACV,MAAM,EACN,mBAAmB,GAIpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAElF,0EAA0E;AAC1E,wEAAwE;AACxE,yEAAyE;AACzE,wEAAwE;AACxE,wDAAwD;AACxD,MAAM,eAAe,GAAG,OAAO,CAC7B,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAC5E,CAAC;AAEF,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,MAAM,sBAAsB,GAAG,+BAA+B,CAAC;AAE/D,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,uEAAuE;AACvE,wEAAwE;AACxE,qEAAqE;AACrE,4CAA4C;AAC5C,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,SAAS;AACT,MAAM,UAAU,sBAAsB,CACpC,SAAwB;IAExB,OAAO,YAAY,CAAC,SAAS,EAAE,IAAI,GAAG,EAA6B,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,YAAY,CACnB,SAAwB,EACxB,KAAqC;IAErC,OAAO,SAAS,QAAQ,CAAC,UAAkB;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export { createBackupTool } from "./tools/backup.js";
|
|
|
18
18
|
export type { BackupDeps } from "./tools/backup.js";
|
|
19
19
|
export { createRestoreTool } from "./tools/restore.js";
|
|
20
20
|
export type { RestoreDeps } from "./tools/restore.js";
|
|
21
|
+
export { createArchiveResetTool } from "./tools/archive-reset.js";
|
|
22
|
+
export type { ArchiveResetDeps } from "./tools/archive-reset.js";
|
|
21
23
|
export { createTransportAdapter, shape } from "./transport-adapter.js";
|
|
22
24
|
export { FLAG_TO_PRESET, parseTaskArgs } from "./lib/parse-task-args.js";
|
|
23
|
-
export type { BackupInput, BackupResponse, BypassMarkerInput, ClientCapabilities, ContinueTaskRequestInput, ContinueTaskResponse, ExtensionsListEntry, ExtensionsListInput, ExtensionsListResponse, ExtensionStatus, GetSpawnPromptInput, GetSpawnPromptResponse, IssueCrossOwnerMarkerInput, IssueCrossOwnerMarkerResponse, MetaBundle, MetaInput, MetaProviders, MetaSandbox, MetaTransports, ParsedTaskArgs, PipelineMetaResponse, PipelineStateView, RecoverTaskInput, RecoverTaskResponse, RecoveryChoiceInput, RestoreInput, RestoreResponse, RunTaskInput, RunTaskResponse, SpawnRequest, StateGetFormat, StateGetInput, ToolHandler, TransportResponse, } from "./types.js";
|
|
25
|
+
export type { ArchiveResetInput, ArchiveResetResponse, BackupInput, BackupResponse, BypassMarkerInput, ClientCapabilities, ContinueTaskRequestInput, ContinueTaskResponse, ExtensionsListEntry, ExtensionsListInput, ExtensionsListResponse, ExtensionStatus, GetSpawnPromptInput, GetSpawnPromptResponse, IssueCrossOwnerMarkerInput, IssueCrossOwnerMarkerResponse, MetaBundle, MetaInput, MetaProviders, MetaSandbox, MetaTransports, ParsedTaskArgs, PipelineMetaResponse, PipelineStateView, RecoverTaskInput, RecoverTaskResponse, RecoveryChoiceInput, RestoreInput, RestoreResponse, RunTaskInput, RunTaskResponse, SpawnRequest, StateGetFormat, StateGetInput, ToolHandler, TransportResponse, } from "./types.js";
|
package/dist/src/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export { createRecoverTool } from "./tools/recover.js";
|
|
|
12
12
|
export { createIssueCrossOwnerMarkerTool } from "./tools/issue-marker.js";
|
|
13
13
|
export { createBackupTool } from "./tools/backup.js";
|
|
14
14
|
export { createRestoreTool } from "./tools/restore.js";
|
|
15
|
+
export { createArchiveResetTool } from "./tools/archive-reset.js";
|
|
15
16
|
export { createTransportAdapter, shape } from "./transport-adapter.js";
|
|
16
17
|
export { FLAG_TO_PRESET, parseTaskArgs } from "./lib/parse-task-args.js";
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,qEAAqE;AACrE,yBAAyB;AAEzB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,qEAAqE;AACrE,yBAAyB;AAEzB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/src/server.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Registry } from "@loomfsm/kernel";
|
|
2
2
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
3
|
import { type MetaInputWithProject } from "./tools/meta.js";
|
|
4
|
-
import type { BackupInput, BackupResponse, ContinueTaskRequestInput, ContinueTaskResponse, ExtensionsListInput, ExtensionsListResponse, GetSpawnPromptInput, GetSpawnPromptResponse, IssueCrossOwnerMarkerInput, IssueCrossOwnerMarkerResponse, PipelineMetaResponse, PipelineStateView, RecoverTaskInput, RecoverTaskResponse, RestoreInput, RestoreResponse, RunTaskInput, RunTaskResponse, StateGetInput, ToolHandler } from "./types.js";
|
|
4
|
+
import type { ArchiveResetInput, ArchiveResetResponse, BackupInput, BackupResponse, ContinueTaskRequestInput, ContinueTaskResponse, ExtensionsListInput, ExtensionsListResponse, GetSpawnPromptInput, GetSpawnPromptResponse, IssueCrossOwnerMarkerInput, IssueCrossOwnerMarkerResponse, PipelineMetaResponse, PipelineStateView, RecoverTaskInput, RecoverTaskResponse, RestoreInput, RestoreResponse, RunTaskInput, RunTaskResponse, StateGetInput, ToolHandler } from "./types.js";
|
|
5
5
|
export interface ServerDeps {
|
|
6
6
|
resolveRegistry?: (projectDir: string) => Promise<Registry> | Registry;
|
|
7
7
|
allowlistPath?: string;
|
|
@@ -17,6 +17,7 @@ export interface ToolRegistry {
|
|
|
17
17
|
pipeline_issue_cross_owner_marker: ToolHandler<IssueCrossOwnerMarkerInput, IssueCrossOwnerMarkerResponse>;
|
|
18
18
|
pipeline_backup: ToolHandler<BackupInput, BackupResponse>;
|
|
19
19
|
pipeline_restore: ToolHandler<RestoreInput, RestoreResponse>;
|
|
20
|
+
pipeline_archive_and_reset: ToolHandler<ArchiveResetInput, ArchiveResetResponse>;
|
|
20
21
|
}
|
|
21
22
|
export interface CreateServerHandle {
|
|
22
23
|
server: Server;
|
package/dist/src/server.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
6
6
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
7
7
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
8
|
+
import { createArchiveResetTool } from "./tools/archive-reset.js";
|
|
8
9
|
import { createBackupTool } from "./tools/backup.js";
|
|
9
10
|
import { createContinueTaskTool } from "./tools/continue-task.js";
|
|
10
11
|
import { createExtensionsListTool } from "./tools/extensions-list.js";
|
|
@@ -202,6 +203,23 @@ const TOOL_DESCRIPTORS = [
|
|
|
202
203
|
required: ["project_dir", "from", "format"],
|
|
203
204
|
},
|
|
204
205
|
},
|
|
206
|
+
{
|
|
207
|
+
name: "pipeline_archive_and_reset",
|
|
208
|
+
description: "Archives this project's finished task into .claude/history/ and frees " +
|
|
209
|
+
"the single-task slot so the next task starts clean. A terminal task " +
|
|
210
|
+
"archives cleanly; an in-progress task is refused (PROJECT_TASK_ACTIVE) " +
|
|
211
|
+
"unless force:true. Works even when the slot is jammed (a finished task " +
|
|
212
|
+
"that was never cleared); a project with no active task is a no-op.",
|
|
213
|
+
inputSchema: {
|
|
214
|
+
type: "object",
|
|
215
|
+
properties: {
|
|
216
|
+
project_dir: { type: "string" },
|
|
217
|
+
force: { type: "boolean" },
|
|
218
|
+
client_identifier_unverified: { type: "string" },
|
|
219
|
+
},
|
|
220
|
+
required: ["project_dir"],
|
|
221
|
+
},
|
|
222
|
+
},
|
|
205
223
|
];
|
|
206
224
|
export function createServer(deps = {}) {
|
|
207
225
|
const tools = {
|
|
@@ -215,6 +233,7 @@ export function createServer(deps = {}) {
|
|
|
215
233
|
pipeline_issue_cross_owner_marker: createIssueCrossOwnerMarkerTool(deps),
|
|
216
234
|
pipeline_backup: createBackupTool(deps),
|
|
217
235
|
pipeline_restore: createRestoreTool(deps),
|
|
236
|
+
pipeline_archive_and_reset: createArchiveResetTool(deps),
|
|
218
237
|
};
|
|
219
238
|
const server = new Server({ name: SERVER_NAME, version: SERVER_VERSION }, { capabilities: { tools: {} } });
|
|
220
239
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
@@ -261,6 +280,9 @@ async function dispatch(tools, name, args) {
|
|
|
261
280
|
if (name === "pipeline_restore") {
|
|
262
281
|
return await tools.pipeline_restore(args);
|
|
263
282
|
}
|
|
283
|
+
if (name === "pipeline_archive_and_reset") {
|
|
284
|
+
return await tools.pipeline_archive_and_reset(args);
|
|
285
|
+
}
|
|
264
286
|
throw new Error(`unknown tool: ${name}`);
|
|
265
287
|
}
|
|
266
288
|
// Stdio entry. The module never connects automatically — the binary
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,iEAAiE;AACjE,sEAAsE;AACtE,iCAAiC;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAA6B,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,iEAAiE;AACjE,sEAAsE;AACtE,iCAAiC;AAGjC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAA6B,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAqC1D,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,cAAc,GAAG,OAAO,CAAC;AAwB/B,qEAAqE;AACrE,oEAAoE;AACpE,oEAAoE;AACpE,yBAAyB;AACzB,MAAM,gBAAgB,GAAG;IACvB;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,kEAAkE;YAClE,+DAA+D;YAC/D,sCAAsC;QACxC,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,4BAA4B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAChD,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACxC;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,kEAAkE;YAClE,gEAAgE;YAChE,oCAAoC;QACtC,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE;gBAC9E,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC1B;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;KACF;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EACT,+DAA+D;YAC/D,uDAAuD;YACvD,oEAAoE;QACtE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE;gBACpE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE;gBACnE,gBAAgB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aACtC;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;KACF;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EACT,qEAAqE;YACrE,kEAAkE;YAClE,mEAAmE;YACnE,2DAA2D;QAC7D,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,uBAAuB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC3C,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;gBAC1E,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE;gBACrE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,4BAA4B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjD;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,yBAAyB,CAAC;SAC7D;KACF;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,iEAAiE;YACjE,mEAAmE;YACnE,qEAAqE;YACrE,4BAA4B;QAC9B,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACnC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,4BAA4B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjD;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,CAAC;SACtD;KACF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EACT,kEAAkE;YAClE,0EAA0E;YAC1E,yEAAyE;YACzE,kEAAkE;QACpE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACnC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjC;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,cAAc,CAAC;SAC7D;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,uEAAuE;YACvE,wEAAwE;YACxE,wEAAwE;YACxE,oEAAoE;YACpE,qDAAqD;QACvD,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACnC,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,gBAAgB,CAAC;iBAC5E;gBACD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC3D,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,4BAA4B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjD;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,QAAQ,CAAC;SACvD;KACF;IACD;QACE,IAAI,EAAE,mCAAmC;QACzC,WAAW,EACT,kEAAkE;YAClE,uEAAuE;YACvE,sEAAsE;YACtE,uEAAuE;YACvE,4DAA4D;QAC9D,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACnC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1B,4BAA4B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjD;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,QAAQ,CAAC;SACvD;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,mEAAmE;YACnE,+DAA+D;YAC/D,sEAAsE;QACxE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtB,4BAA4B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjD;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC;SAChC;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,wEAAwE;YACxE,2DAA2D;YAC3D,qEAAqE;YACrE,+BAA+B;QACjC,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;gBACnD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC5B,4BAA4B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjD;YACD,QAAQ,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC;SAC5C;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EACT,wEAAwE;YACxE,sEAAsE;YACtE,yEAAyE;YACzE,yEAAyE;YACzE,oEAAoE;QACtE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1B,4BAA4B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aACjD;YACD,QAAQ,EAAE,CAAC,aAAa,CAAC;SAC1B;KACF;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,OAAmB,EAAE;IAChD,MAAM,KAAK,GAAiB;QAC1B,aAAa,EAAE,cAAc,EAAE;QAC/B,kBAAkB,EAAE,kBAAkB,EAAE;QACxC,wBAAwB,EAAE,wBAAwB,EAAE;QACpD,iBAAiB,EAAE,iBAAiB,CAAC,IAAI,CAAC;QAC1C,sBAAsB,EAAE,sBAAsB,CAAC,IAAI,CAAC;QACpD,yBAAyB,EAAE,wBAAwB,CAAC,IAAI,CAAC;QACzD,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC;QACzC,iCAAiC,EAAE,+BAA+B,CAAC,IAAI,CAAC;QACxE,eAAe,EAAE,gBAAgB,CAAC,IAAI,CAAC;QACvC,gBAAgB,EAAE,iBAAiB,CAAC,IAAI,CAAC;QACzC,0BAA0B,EAAE,sBAAsB,CAAC,IAAI,CAAC;KACzD,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,EAC9C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,gBAAgB;KACxB,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACjC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;QAEzE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,KAAmB,EACnB,IAAY,EACZ,IAA6B;IAE7B,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC7B,OAAO,MAAM,KAAK,CAAC,aAAa,CAAC,IAAuC,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAClC,OAAO,MAAM,KAAK,CAAC,kBAAkB,CAAC,IAAgC,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;QACxC,OAAO,MAAM,KAAK,CAAC,wBAAwB,CAAC,IAAsC,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACjC,OAAO,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAA+B,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,IAAI,KAAK,wBAAwB,EAAE,CAAC;QACtC,OAAO,MAAM,KAAK,CAAC,sBAAsB,CAAC,IAA2C,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,IAAI,KAAK,2BAA2B,EAAE,CAAC;QACzC,OAAO,MAAM,KAAK,CAAC,yBAAyB,CAAC,IAAsC,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAChC,OAAO,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAAmC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,IAAI,KAAK,mCAAmC,EAAE,CAAC;QACjD,OAAO,MAAM,KAAK,CAAC,iCAAiC,CAClD,IAA6C,CAC9C,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/B,OAAO,MAAM,KAAK,CAAC,eAAe,CAAC,IAA8B,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAChC,OAAO,MAAM,KAAK,CAAC,gBAAgB,CAAC,IAA+B,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,IAAI,KAAK,4BAA4B,EAAE,CAAC;QAC1C,OAAO,MAAM,KAAK,CAAC,0BAA0B,CAAC,IAAoC,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,oEAAoE;AACpE,gEAAgE;AAChE,oEAAoE;AACpE,uEAAuE;AACvE,gEAAgE;AAChE,wEAAwE;AACxE,gCAAgC;AAChC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAmB,EAAE;IACxD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ArchiveResetInput, ArchiveResetResponse, ToolHandler } from "../types.js";
|
|
2
|
+
export interface ArchiveResetDeps {
|
|
3
|
+
allowlistPath?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function createArchiveResetTool(deps?: ArchiveResetDeps): ToolHandler<ArchiveResetInput, ArchiveResetResponse>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// pipeline_archive_and_reset — rotate this project's finished task into
|
|
2
|
+
// history and free the single-task slot, so the next task starts clean.
|
|
3
|
+
//
|
|
4
|
+
// Composition: project-dir allowlist → archiveAndReset (the kernel guard:
|
|
5
|
+
// a terminal task archives cleanly; an in-progress task is refused unless
|
|
6
|
+
// force:true so a live run is never discarded; no live store is a no-op).
|
|
7
|
+
//
|
|
8
|
+
// This is the manual instrument for the jammed case — a terminal task that
|
|
9
|
+
// was never rotated keeps blocking new tasks, and this tool clears it even
|
|
10
|
+
// when the normal create path refuses. It does NOT need a registry and
|
|
11
|
+
// runs no FSM tick, so it works regardless of the project's flow wiring.
|
|
12
|
+
//
|
|
13
|
+
// `ts` is the threaded NowToken (the archival stamp), not a fresh clock
|
|
14
|
+
// read, so the reported timestamp matches the archive boundary.
|
|
15
|
+
import { archiveAndReset, assertProjectDirAllowed, captureNow, KernelError, } from "@loomfsm/kernel";
|
|
16
|
+
export function createArchiveResetTool(deps = {}) {
|
|
17
|
+
return async (input) => {
|
|
18
|
+
const now = captureNow();
|
|
19
|
+
// 1. Project-dir allowlist.
|
|
20
|
+
try {
|
|
21
|
+
await assertProjectDirAllowed(input.project_dir, deps.allowlistPath !== undefined ? { allowlistPath: deps.allowlistPath } : undefined);
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
return refusal(err, now);
|
|
25
|
+
}
|
|
26
|
+
// 2. Guarded archival. In-progress without force → PROJECT_TASK_ACTIVE.
|
|
27
|
+
try {
|
|
28
|
+
const result = await archiveAndReset(input.project_dir, now, input.force === true ? { force: true } : undefined);
|
|
29
|
+
return {
|
|
30
|
+
archived: result.archived,
|
|
31
|
+
task_id: result.task_id,
|
|
32
|
+
history_path: result.history_path,
|
|
33
|
+
ts: now,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return refusal(err, now);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function refusal(err, ts) {
|
|
42
|
+
if (err instanceof KernelError) {
|
|
43
|
+
return {
|
|
44
|
+
archived: false,
|
|
45
|
+
task_id: null,
|
|
46
|
+
history_path: null,
|
|
47
|
+
ts,
|
|
48
|
+
error: { code: err.code, message: err.message },
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
throw err;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=archive-reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive-reset.js","sourceRoot":"","sources":["../../../src/tools/archive-reset.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,wEAAwE;AACxE,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,0EAA0E;AAC1E,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,uEAAuE;AACvE,yEAAyE;AACzE,EAAE;AACF,wEAAwE;AACxE,gEAAgE;AAEhE,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAQzB,MAAM,UAAU,sBAAsB,CACpC,OAAyB,EAAE;IAE3B,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QAEzB,4BAA4B;QAC5B,IAAI,CAAC;YACH,MAAM,uBAAuB,CAC3B,KAAK,CAAC,WAAW,EACjB,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CACrF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;QAED,wEAAwE;QACxE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,KAAK,CAAC,WAAW,EACjB,GAAG,EACH,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CACnD,CAAC;YACF,OAAO;gBACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,EAAE,EAAE,GAAG;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAAY,EAAE,EAAU;IACvC,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,IAAI;YAClB,EAAE;YACF,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;SAChD,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
// refusals) become structured error envelopes; the MCP client sees the
|
|
21
21
|
// same wire shape for a refusal as for the happy path. Only programmer
|
|
22
22
|
// errors throw.
|
|
23
|
-
import { assertProjectDirAllowed, captureNow, initializeTask, KernelError, loadState, openDb, readLedgerRow, runFSM, TransactionImpl, withStateTransaction, writeLedgerRow, } from "@loomfsm/kernel";
|
|
23
|
+
import { archiveStateDb, assertProjectDirAllowed, captureNow, initializeTask, KernelError, loadState, openDb, peekArchiveSlot, readLedgerRow, runFSM, TransactionImpl, withStateTransaction, writeLedgerRow, } from "@loomfsm/kernel";
|
|
24
24
|
import { parseTaskArgs } from "../lib/parse-task-args.js";
|
|
25
25
|
import { persistDriverStepIndex } from "../lib/persist-progress.js";
|
|
26
26
|
import { createTransportAdapter } from "../transport-adapter.js";
|
|
@@ -46,6 +46,21 @@ export function createRunTaskTool(deps = {}) {
|
|
|
46
46
|
const cached = await readCachedCreation(input.project_dir, input.client_idempotency_uuid);
|
|
47
47
|
if (cached !== null)
|
|
48
48
|
return cached;
|
|
49
|
+
// 3b. Free a finished slot before creating the next task. A single-task
|
|
50
|
+
// store holds one task at a time, so a prior task's TERMINAL record
|
|
51
|
+
// is rotated into history here — the belt-and-suspenders path for a
|
|
52
|
+
// user who never ran the graceful finish. An in-progress task is
|
|
53
|
+
// NEVER auto-rotated; the create tx below refuses it with a typed
|
|
54
|
+
// PROJECT_TASK_ACTIVE error rather than discarding a live run.
|
|
55
|
+
try {
|
|
56
|
+
const slot = await peekArchiveSlot(input.project_dir);
|
|
57
|
+
if (slot !== null && (slot.status === "completed" || slot.status === "abandoned")) {
|
|
58
|
+
await archiveStateDb(input.project_dir, captureNow(), { reason: "auto-rotate" });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
return refusal(err);
|
|
63
|
+
}
|
|
49
64
|
if (deps.resolveRegistry === undefined) {
|
|
50
65
|
return {
|
|
51
66
|
response: errorResponse(UNKNOWN_DRIVER, "REGISTRY_UNAVAILABLE", "no registry resolver is wired for the active-task path"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-task.js","sourceRoot":"","sources":["../../../src/tools/run-task.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-task.js","sourceRoot":"","sources":["../../../src/tools/run-task.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -182,4 +182,19 @@ export interface RestoreResponse {
|
|
|
182
182
|
message: string;
|
|
183
183
|
};
|
|
184
184
|
}
|
|
185
|
+
export interface ArchiveResetInput {
|
|
186
|
+
project_dir: string;
|
|
187
|
+
force?: boolean;
|
|
188
|
+
client_identifier_unverified?: string;
|
|
189
|
+
}
|
|
190
|
+
export interface ArchiveResetResponse {
|
|
191
|
+
archived: boolean;
|
|
192
|
+
task_id: string | null;
|
|
193
|
+
history_path: string | null;
|
|
194
|
+
ts: string;
|
|
195
|
+
error?: {
|
|
196
|
+
code: string;
|
|
197
|
+
message: string;
|
|
198
|
+
};
|
|
199
|
+
}
|
|
185
200
|
export type ToolHandler<I, O> = (input: I) => Promise<O>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loomfsm/mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "MCP transport for loom — exposes the pipeline tools over stdio and assembles the runnable registry.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
29
|
-
"@loomfsm/
|
|
30
|
-
"@loomfsm/
|
|
31
|
-
"@loomfsm/provider-claude-code-shuttle": "0.1.
|
|
32
|
-
"@loomfsm/transport-types": "0.1.
|
|
29
|
+
"@loomfsm/bundle-code": "0.1.3",
|
|
30
|
+
"@loomfsm/kernel": "0.1.3",
|
|
31
|
+
"@loomfsm/provider-claude-code-shuttle": "0.1.3",
|
|
32
|
+
"@loomfsm/transport-types": "0.1.3"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@loomfsm/provider-ollama": "0.0.0"
|