@cleocode/core 2026.9.10 → 2026.9.12
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/dist/docs/export-document.js +50 -11
- package/dist/docs/export-document.js.map +1 -1
- package/dist/llm/plugin-facade.js +50 -11
- package/dist/llm/plugin-facade.js.map +2 -2
- package/dist/paths.d.ts +8 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +57 -4
- package/dist/paths.js.map +1 -1
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +13 -1
- package/dist/release/open.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +50 -11
- package/dist/selfimprove/fix-gen.js.map +2 -2
- package/dist/shutdown-deadline.d.ts +3 -1
- package/dist/shutdown-deadline.d.ts.map +1 -1
- package/dist/shutdown-deadline.js +11 -1
- package/dist/shutdown-deadline.js.map +1 -1
- package/dist/shutdown.d.ts.map +1 -1
- package/dist/shutdown.js +10 -3
- package/dist/shutdown.js.map +1 -1
- package/dist/store/background-ops.d.ts +51 -5
- package/dist/store/background-ops.d.ts.map +1 -1
- package/dist/store/background-ops.js +72 -6
- package/dist/store/background-ops.js.map +1 -1
- package/dist/store/schema/background-jobs.d.ts +1 -1
- package/dist/store/schema/cleo-project/lifecycle.d.ts +2 -2
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +1 -1
- package/dist/store/schema/cleo-project/runtime.d.ts +2 -2
- package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +2 -2
- package/dist/store/schema/lifecycle.d.ts +2 -2
- package/dist/store/schema/memory-schema.d.ts +2 -2
- package/dist/store/schema/provenance/releases.d.ts +1 -1
- package/dist/store/schema/tasks.d.ts +1 -1
- package/dist/store/validation-schemas.d.ts +12 -12
- package/package.json +13 -13
- package/templates/workflows/release-prepare.yml.tmpl +48 -2
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
import { z } from 'zod';
|
|
15
15
|
/** Zod enum schema for task statuses. */
|
|
16
16
|
export declare const taskStatusSchema: z.ZodEnum<{
|
|
17
|
+
cancelled: "cancelled";
|
|
17
18
|
active: "active";
|
|
18
19
|
done: "done";
|
|
19
20
|
archived: "archived";
|
|
20
|
-
cancelled: "cancelled";
|
|
21
21
|
blocked: "blocked";
|
|
22
22
|
pending: "pending";
|
|
23
23
|
proposed: "proposed";
|
|
@@ -51,17 +51,17 @@ export declare const sessionStatusSchema: z.ZodEnum<{
|
|
|
51
51
|
}>;
|
|
52
52
|
/** Zod enum schema for lifecycle pipeline statuses. */
|
|
53
53
|
export declare const lifecyclePipelineStatusSchema: z.ZodEnum<{
|
|
54
|
+
failed: "failed";
|
|
55
|
+
cancelled: "cancelled";
|
|
54
56
|
active: "active";
|
|
55
57
|
aborted: "aborted";
|
|
56
|
-
cancelled: "cancelled";
|
|
57
58
|
blocked: "blocked";
|
|
58
|
-
failed: "failed";
|
|
59
59
|
completed: "completed";
|
|
60
60
|
}>;
|
|
61
61
|
/** Zod enum schema for lifecycle stage statuses. */
|
|
62
62
|
export declare const lifecycleStageStatusSchema: z.ZodEnum<{
|
|
63
|
-
blocked: "blocked";
|
|
64
63
|
failed: "failed";
|
|
64
|
+
blocked: "blocked";
|
|
65
65
|
in_progress: "in_progress";
|
|
66
66
|
skipped: "skipped";
|
|
67
67
|
completed: "completed";
|
|
@@ -349,7 +349,7 @@ export declare const insertTaskSchema: import("drizzle-orm/zod").BuildSchema<"in
|
|
|
349
349
|
name: string;
|
|
350
350
|
tableName: "tasks_tasks";
|
|
351
351
|
dataType: "string enum";
|
|
352
|
-
data: "
|
|
352
|
+
data: "cancelled" | "active" | "done" | "archived" | "blocked" | "pending" | "proposed";
|
|
353
353
|
driverParam: string;
|
|
354
354
|
notNull: true;
|
|
355
355
|
hasDefault: true;
|
|
@@ -963,7 +963,7 @@ export declare const selectTaskSchema: import("drizzle-orm/zod").BuildSchema<"se
|
|
|
963
963
|
name: string;
|
|
964
964
|
tableName: "tasks_tasks";
|
|
965
965
|
dataType: "string enum";
|
|
966
|
-
data: "
|
|
966
|
+
data: "cancelled" | "active" | "done" | "archived" | "blocked" | "pending" | "proposed";
|
|
967
967
|
driverParam: string;
|
|
968
968
|
notNull: true;
|
|
969
969
|
hasDefault: true;
|
|
@@ -2865,7 +2865,7 @@ export declare const insertLifecyclePipelineSchema: import("drizzle-orm/zod").Bu
|
|
|
2865
2865
|
name: string;
|
|
2866
2866
|
tableName: "tasks_lifecycle_pipelines";
|
|
2867
2867
|
dataType: "string enum";
|
|
2868
|
-
data: "
|
|
2868
|
+
data: "failed" | "cancelled" | "active" | "aborted" | "blocked" | "completed";
|
|
2869
2869
|
driverParam: string;
|
|
2870
2870
|
notNull: true;
|
|
2871
2871
|
hasDefault: true;
|
|
@@ -2998,7 +2998,7 @@ export declare const selectLifecyclePipelineSchema: import("drizzle-orm/zod").Bu
|
|
|
2998
2998
|
name: string;
|
|
2999
2999
|
tableName: "tasks_lifecycle_pipelines";
|
|
3000
3000
|
dataType: "string enum";
|
|
3001
|
-
data: "
|
|
3001
|
+
data: "failed" | "cancelled" | "active" | "aborted" | "blocked" | "completed";
|
|
3002
3002
|
driverParam: string;
|
|
3003
3003
|
notNull: true;
|
|
3004
3004
|
hasDefault: true;
|
|
@@ -3147,7 +3147,7 @@ export declare const insertLifecycleStageSchema: import("drizzle-orm/zod").Build
|
|
|
3147
3147
|
name: string;
|
|
3148
3148
|
tableName: "tasks_lifecycle_stages";
|
|
3149
3149
|
dataType: "string enum";
|
|
3150
|
-
data: "
|
|
3150
|
+
data: "failed" | "blocked" | "in_progress" | "skipped" | "completed" | "not_started";
|
|
3151
3151
|
driverParam: string;
|
|
3152
3152
|
notNull: true;
|
|
3153
3153
|
hasDefault: true;
|
|
@@ -3458,7 +3458,7 @@ export declare const selectLifecycleStageSchema: import("drizzle-orm/zod").Build
|
|
|
3458
3458
|
name: string;
|
|
3459
3459
|
tableName: "tasks_lifecycle_stages";
|
|
3460
3460
|
dataType: "string enum";
|
|
3461
|
-
data: "
|
|
3461
|
+
data: "failed" | "blocked" | "in_progress" | "skipped" | "completed" | "not_started";
|
|
3462
3462
|
driverParam: string;
|
|
3463
3463
|
notNull: true;
|
|
3464
3464
|
hasDefault: true;
|
|
@@ -8017,7 +8017,7 @@ export declare const insertReleaseSchema: import("drizzle-orm/zod").BuildSchema<
|
|
|
8017
8017
|
name: string;
|
|
8018
8018
|
tableName: "tasks_releases";
|
|
8019
8019
|
dataType: "string enum";
|
|
8020
|
-
data: "
|
|
8020
|
+
data: "failed" | "cancelled" | "reconciled" | "planned" | "pr-opened" | "pr-merged" | "published" | "prepared" | "committed" | "tagged" | "pushed" | "rolled_back";
|
|
8021
8021
|
driverParam: string;
|
|
8022
8022
|
notNull: true;
|
|
8023
8023
|
hasDefault: true;
|
|
@@ -8518,7 +8518,7 @@ export declare const selectReleaseSchema: import("drizzle-orm/zod").BuildSchema<
|
|
|
8518
8518
|
name: string;
|
|
8519
8519
|
tableName: "tasks_releases";
|
|
8520
8520
|
dataType: "string enum";
|
|
8521
|
-
data: "
|
|
8521
|
+
data: "failed" | "cancelled" | "reconciled" | "planned" | "pr-opened" | "pr-merged" | "published" | "prepared" | "committed" | "tagged" | "pushed" | "rolled_back";
|
|
8522
8522
|
driverParam: string;
|
|
8523
8523
|
notNull: true;
|
|
8524
8524
|
hasDefault: true;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/core",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.12",
|
|
4
4
|
"description": "CLEO core business logic kernel — tasks, sessions, memory, orchestration, lifecycle, with bundled SQLite store",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -461,16 +461,16 @@
|
|
|
461
461
|
"write-file-atomic": "^7.0.1",
|
|
462
462
|
"yaml": "^2.8.3",
|
|
463
463
|
"zod": "^4.3.6",
|
|
464
|
-
"@cleocode/adapters": "2026.9.
|
|
465
|
-
"@cleocode/
|
|
466
|
-
"@cleocode/
|
|
467
|
-
"@cleocode/
|
|
468
|
-
"@cleocode/
|
|
469
|
-
"@cleocode/lafs": "2026.9.
|
|
470
|
-
"@cleocode/paths": "2026.9.
|
|
471
|
-
"@cleocode/nexus": "2026.9.
|
|
472
|
-
"@cleocode/skills": "2026.9.
|
|
473
|
-
"@cleocode/worktree": "2026.9.
|
|
464
|
+
"@cleocode/adapters": "2026.9.12",
|
|
465
|
+
"@cleocode/caamp": "2026.9.12",
|
|
466
|
+
"@cleocode/contracts": "2026.9.12",
|
|
467
|
+
"@cleocode/agents": "2026.9.12",
|
|
468
|
+
"@cleocode/git-shim": "2026.9.12",
|
|
469
|
+
"@cleocode/lafs": "2026.9.12",
|
|
470
|
+
"@cleocode/paths": "2026.9.12",
|
|
471
|
+
"@cleocode/nexus": "2026.9.12",
|
|
472
|
+
"@cleocode/skills": "2026.9.12",
|
|
473
|
+
"@cleocode/worktree": "2026.9.12"
|
|
474
474
|
},
|
|
475
475
|
"engines": {
|
|
476
476
|
"node": ">=24.16.0"
|
|
@@ -496,7 +496,7 @@
|
|
|
496
496
|
"@types/proper-lockfile": "^4.1.4",
|
|
497
497
|
"@types/tar": "^6.1.13",
|
|
498
498
|
"@types/write-file-atomic": "^4.0.3",
|
|
499
|
-
"@cleocode/utils": "2026.9.
|
|
499
|
+
"@cleocode/utils": "2026.9.12"
|
|
500
500
|
},
|
|
501
501
|
"repository": {
|
|
502
502
|
"type": "git",
|
|
@@ -505,7 +505,7 @@
|
|
|
505
505
|
},
|
|
506
506
|
"optionalDependencies": {
|
|
507
507
|
"llmtxt": "^2026.5.15",
|
|
508
|
-
"@cleocode/studio": "^2026.9.
|
|
508
|
+
"@cleocode/studio": "^2026.9.12"
|
|
509
509
|
},
|
|
510
510
|
"scripts": {
|
|
511
511
|
"build": "tsc && node scripts/copy-selfimprove-fixtures.mjs",
|
|
@@ -96,8 +96,46 @@ jobs:
|
|
|
96
96
|
# is already green, tests can be skipped to avoid the redundant run.
|
|
97
97
|
# (b) The test step is sharded across 2 parallel matrix workers, keeping
|
|
98
98
|
# each shard under 10 min even without skipping.
|
|
99
|
+
# T12309: a dispatch that CANNOT succeed must not cost a full preflight.
|
|
100
|
+
#
|
|
101
|
+
# The "Resolve release plan" step has two branches. The committed-plan branch
|
|
102
|
+
# verifies a plan file by sha256 and works. The regenerate branch runs
|
|
103
|
+
# `cleo release plan --tasks|--epic` ON THIS RUNNER, and the task store
|
|
104
|
+
# (`.cleo/cleo.db`) is deliberately untracked (ADR-013 section 9, Runtime Data
|
|
105
|
+
# Safety), so a fresh checkout has zero tasks and the command exits
|
|
106
|
+
# `E_NOT_FOUND: One or more --tasks IDs were not found`.
|
|
107
|
+
#
|
|
108
|
+
# That failure landed in `prepare`, which needs all three preflight jobs, so
|
|
109
|
+
# ~20 minutes of lint, typecheck, two test shards and a build were spent
|
|
110
|
+
# proving a tree healthy before anyone learned the dispatch had been
|
|
111
|
+
# impossible from its first second. This job asks that question first.
|
|
112
|
+
dispatch-preconditions:
|
|
113
|
+
name: Dispatch preconditions
|
|
114
|
+
runs-on: ubuntu-latest
|
|
115
|
+
timeout-minutes: 3
|
|
116
|
+
steps:
|
|
117
|
+
- uses: actions/checkout@v4
|
|
118
|
+
- name: A scoped dispatch needs a committed plan
|
|
119
|
+
run: |
|
|
120
|
+
if [ -n "${{ inputs.plan-blob-sha256 }}" ]; then
|
|
121
|
+
echo "plan-blob-sha256 supplied - the committed-plan branch will be used."
|
|
122
|
+
exit 0
|
|
123
|
+
fi
|
|
124
|
+
if [ -z "${{ inputs.epic }}" ] && [ -z "${{ inputs.tasks }}" ]; then
|
|
125
|
+
echo "::error::No release scope supplied. Dispatch with 'epic' or 'tasks', or pass 'plan-blob-sha256' with a committed plan file."
|
|
126
|
+
exit 1
|
|
127
|
+
fi
|
|
128
|
+
if [ -f .cleo/cleo.db ]; then
|
|
129
|
+
echo "Task store present in the checkout - the regenerate branch can resolve the scope."
|
|
130
|
+
exit 0
|
|
131
|
+
fi
|
|
132
|
+
echo "::error::This dispatch cannot succeed. It supplies a scope (epic/tasks) but no 'plan-blob-sha256', so the workflow would regenerate the plan by running 'cleo release plan' here - and .cleo/cleo.db is untracked (ADR-013 section 9), so this checkout has no tasks to resolve."
|
|
133
|
+
echo "::error::Fix: run 'cleo release open <version>' locally. It commits the plan file (git add -f past the .cleo/ ignore), verifies it is on the branch this workflow checks out, and forwards its sha256 as 'plan-blob-sha256'. That is the default as of T12309."
|
|
134
|
+
exit 1
|
|
135
|
+
|
|
99
136
|
preflight-lint-typecheck:
|
|
100
137
|
name: Preflight (lint + typecheck)
|
|
138
|
+
needs: [dispatch-preconditions]
|
|
101
139
|
runs-on: ubuntu-latest
|
|
102
140
|
timeout-minutes: 15
|
|
103
141
|
steps:
|
|
@@ -135,8 +173,12 @@ jobs:
|
|
|
135
173
|
preflight-test:
|
|
136
174
|
name: Preflight (test shard ${{ matrix.shard }}/2)
|
|
137
175
|
if: ${{ inputs.skip-tests != true }}
|
|
176
|
+
needs: [dispatch-preconditions]
|
|
138
177
|
runs-on: ubuntu-latest
|
|
139
|
-
|
|
178
|
+
# T12309: the job ceiling has to clear the step ceiling it contains. The
|
|
179
|
+
# step now gets 55 minutes (matching ci.yml); 30 here would have killed the
|
|
180
|
+
# job first and reported it as a job timeout rather than a slow suite.
|
|
181
|
+
timeout-minutes: 60
|
|
140
182
|
strategy:
|
|
141
183
|
fail-fast: true
|
|
142
184
|
matrix:
|
|
@@ -210,7 +252,11 @@ jobs:
|
|
|
210
252
|
|
|
211
253
|
- name: Test (shard ${{ matrix.shard }}/2)
|
|
212
254
|
run: pnpm exec vitest run --shard=${{ matrix.shard }}/2
|
|
213
|
-
|
|
255
|
+
# T12309: was 20, against a sweep that does not fit in it. ci.yml gives
|
|
256
|
+
# the same suite 55 minutes and a shard measured 17m04s there; this step
|
|
257
|
+
# timed out at 20:00 on a tree whose CI was fully green, so a release
|
|
258
|
+
# could not be prepared from a release-ready commit.
|
|
259
|
+
timeout-minutes: 55
|
|
214
260
|
|
|
215
261
|
preflight-build:
|
|
216
262
|
name: Preflight (build)
|