@cleocode/cleo 2026.4.66 → 2026.4.68
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/cli/index.js +640 -221
- package/dist/cli/index.js.map +4 -4
- package/migrations/drizzle-brain/20260321000001_t033-brain-indexes/migration.sql +12 -0
- package/migrations/drizzle-brain/20260321000001_t033-brain-indexes/snapshot.json +1232 -0
- package/migrations/drizzle-brain/20260408000001_t417-agent-field/migration.sql +13 -0
- package/migrations/drizzle-brain/20260408000001_t417-agent-field/snapshot.json +28 -0
- package/migrations/drizzle-brain/20260411000001_t528-graph-schema-expansion/migration.sql +47 -0
- package/migrations/drizzle-brain/20260412000001_t531-quality-score-typed-tables/migration.sql +23 -0
- package/migrations/drizzle-brain/20260413000001_t549-tiered-typed-memory/migration.sql +195 -0
- package/migrations/drizzle-brain/20260415000001_t626-normalize-co-retrieved-edge-type/migration.sql +14 -0
- package/migrations/drizzle-brain/20260416000001_t673-retrieval-log-plasticity-columns/migration.sql +57 -0
- package/migrations/drizzle-brain/20260416000002_t673-plasticity-events-expand/migration.sql +44 -0
- package/migrations/drizzle-brain/20260416000003_t673-page-edges-plasticity-columns/migration.sql +44 -0
- package/migrations/drizzle-brain/20260416000004_t673-new-plasticity-tables/migration.sql +73 -0
- package/migrations/drizzle-brain/20260416000005_t726-dedup-tier-columns/migration.sql +77 -0
- package/migrations/drizzle-nexus/20260412000001_t529-nexus-graph-tables/migration.sql +49 -0
- package/migrations/drizzle-nexus/20260415000001_t622-project-registry-paths/migration.sql +12 -0
- package/migrations/drizzle-tasks/20260320013731_wave0-schema-hardening/migration.sql +84 -0
- package/migrations/drizzle-tasks/20260320013731_wave0-schema-hardening/snapshot.json +4060 -0
- package/migrations/drizzle-tasks/20260320020000_agent-dimension/migration.sql +35 -0
- package/migrations/drizzle-tasks/20260320020000_agent-dimension/snapshot.json +4312 -0
- package/migrations/drizzle-tasks/20260321000000_t033-connection-health/migration.sql +518 -0
- package/migrations/drizzle-tasks/20260321000000_t033-connection-health/snapshot.json +4312 -0
- package/migrations/drizzle-tasks/20260321000002_t060-pipeline-stage-binding/migration.sql +82 -0
- package/migrations/drizzle-tasks/20260321000002_t060-pipeline-stage-binding/snapshot.json +9 -0
- package/migrations/drizzle-tasks/20260324000000_assignee-column/migration.sql +6 -0
- package/migrations/drizzle-tasks/20260324000000_assignee-column/snapshot.json +9 -0
- package/migrations/drizzle-tasks/20260327000000_agent-credentials/migration.sql +23 -0
- package/package.json +8 -8
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
-- T060: Remove FK constraint from tasks.pipeline_stage so it stores stage names
|
|
2
|
+
-- (e.g. "implementation", "testing") rather than lifecycle_stages.id references.
|
|
3
|
+
-- Tasks can now be assigned a pipeline stage without a lifecycle pipeline record.
|
|
4
|
+
--
|
|
5
|
+
-- SQLite does not support DROP CONSTRAINT, so we rebuild the tasks table.
|
|
6
|
+
PRAGMA foreign_keys=OFF;
|
|
7
|
+
--> statement-breakpoint
|
|
8
|
+
CREATE TABLE `tasks_t060` (
|
|
9
|
+
`id` text PRIMARY KEY,
|
|
10
|
+
`title` text NOT NULL,
|
|
11
|
+
`description` text,
|
|
12
|
+
`status` text DEFAULT 'pending' NOT NULL,
|
|
13
|
+
`priority` text DEFAULT 'medium' NOT NULL,
|
|
14
|
+
`type` text,
|
|
15
|
+
`parent_id` text,
|
|
16
|
+
`phase` text,
|
|
17
|
+
`size` text,
|
|
18
|
+
`position` integer,
|
|
19
|
+
`position_version` integer DEFAULT 0,
|
|
20
|
+
`labels_json` text DEFAULT '[]',
|
|
21
|
+
`notes_json` text DEFAULT '[]',
|
|
22
|
+
`acceptance_json` text DEFAULT '[]',
|
|
23
|
+
`files_json` text DEFAULT '[]',
|
|
24
|
+
`origin` text,
|
|
25
|
+
`blocked_by` text,
|
|
26
|
+
`epic_lifecycle` text,
|
|
27
|
+
`no_auto_complete` integer,
|
|
28
|
+
`created_at` text DEFAULT (datetime('now')) NOT NULL,
|
|
29
|
+
`updated_at` text,
|
|
30
|
+
`completed_at` text,
|
|
31
|
+
`cancelled_at` text,
|
|
32
|
+
`cancellation_reason` text,
|
|
33
|
+
`archived_at` text,
|
|
34
|
+
`archive_reason` text,
|
|
35
|
+
`cycle_time_days` integer,
|
|
36
|
+
`verification_json` text,
|
|
37
|
+
`created_by` text,
|
|
38
|
+
`modified_by` text,
|
|
39
|
+
`session_id` text,
|
|
40
|
+
`pipeline_stage` text,
|
|
41
|
+
CONSTRAINT `fk_tasks_parent_id` FOREIGN KEY (`parent_id`) REFERENCES `tasks_t060`(`id`) ON DELETE SET NULL,
|
|
42
|
+
CONSTRAINT `fk_tasks_session_id` FOREIGN KEY (`session_id`) REFERENCES `sessions`(`id`) ON DELETE SET NULL
|
|
43
|
+
);
|
|
44
|
+
--> statement-breakpoint
|
|
45
|
+
INSERT INTO `tasks_t060` SELECT
|
|
46
|
+
`id`, `title`, `description`, `status`, `priority`, `type`, `parent_id`,
|
|
47
|
+
`phase`, `size`, `position`, `position_version`, `labels_json`, `notes_json`,
|
|
48
|
+
`acceptance_json`, `files_json`, `origin`, `blocked_by`, `epic_lifecycle`,
|
|
49
|
+
`no_auto_complete`, `created_at`, `updated_at`, `completed_at`, `cancelled_at`,
|
|
50
|
+
`cancellation_reason`, `archived_at`, `archive_reason`, `cycle_time_days`,
|
|
51
|
+
`verification_json`, `created_by`, `modified_by`, `session_id`,
|
|
52
|
+
NULL
|
|
53
|
+
FROM `tasks`;
|
|
54
|
+
--> statement-breakpoint
|
|
55
|
+
DROP TABLE `tasks`;
|
|
56
|
+
--> statement-breakpoint
|
|
57
|
+
ALTER TABLE `tasks_t060` RENAME TO `tasks`;
|
|
58
|
+
--> statement-breakpoint
|
|
59
|
+
-- Restore indexes
|
|
60
|
+
CREATE INDEX `idx_tasks_status` ON `tasks` (`status`);
|
|
61
|
+
--> statement-breakpoint
|
|
62
|
+
CREATE INDEX `idx_tasks_parent_id` ON `tasks` (`parent_id`);
|
|
63
|
+
--> statement-breakpoint
|
|
64
|
+
CREATE INDEX `idx_tasks_phase` ON `tasks` (`phase`);
|
|
65
|
+
--> statement-breakpoint
|
|
66
|
+
CREATE INDEX `idx_tasks_type` ON `tasks` (`type`);
|
|
67
|
+
--> statement-breakpoint
|
|
68
|
+
CREATE INDEX `idx_tasks_priority` ON `tasks` (`priority`);
|
|
69
|
+
--> statement-breakpoint
|
|
70
|
+
CREATE INDEX `idx_tasks_session_id` ON `tasks` (`session_id`);
|
|
71
|
+
--> statement-breakpoint
|
|
72
|
+
CREATE INDEX `idx_tasks_pipeline_stage` ON `tasks` (`pipeline_stage`);
|
|
73
|
+
--> statement-breakpoint
|
|
74
|
+
CREATE INDEX `idx_tasks_parent_status` ON `tasks` (`parent_id`, `status`);
|
|
75
|
+
--> statement-breakpoint
|
|
76
|
+
CREATE INDEX `idx_tasks_status_priority` ON `tasks` (`status`, `priority`);
|
|
77
|
+
--> statement-breakpoint
|
|
78
|
+
CREATE INDEX `idx_tasks_type_phase` ON `tasks` (`type`, `phase`);
|
|
79
|
+
--> statement-breakpoint
|
|
80
|
+
CREATE INDEX `idx_tasks_status_archive_reason` ON `tasks` (`status`, `archive_reason`);
|
|
81
|
+
--> statement-breakpoint
|
|
82
|
+
PRAGMA foreign_keys=ON;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-- B.1: Add assignee column to tasks table for agent task claiming.
|
|
2
|
+
-- Enables tasks.claim(taskId, agentId) and tasks.unclaim(taskId).
|
|
3
|
+
-- NULL = unclaimed; non-null = claimed by that agent ID.
|
|
4
|
+
ALTER TABLE `tasks` ADD COLUMN `assignee` text;
|
|
5
|
+
--> statement-breakpoint
|
|
6
|
+
CREATE INDEX `idx_tasks_assignee` ON `tasks` (`assignee`);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
-- T173: Add agent_credentials table for unified agent registry.
|
|
2
|
+
-- Stores agent API keys encrypted at rest (AES-256-GCM, machine-key bound).
|
|
3
|
+
-- Replaces loose clawmsgr-*.json config files.
|
|
4
|
+
-- See: docs/specs/SIGNALDOCK-UNIFIED-AGENT-REGISTRY.md Section 3.1
|
|
5
|
+
CREATE TABLE IF NOT EXISTS `agent_credentials` (
|
|
6
|
+
`agent_id` text PRIMARY KEY NOT NULL,
|
|
7
|
+
`display_name` text NOT NULL,
|
|
8
|
+
`api_key_encrypted` text NOT NULL,
|
|
9
|
+
`api_base_url` text NOT NULL DEFAULT 'https://api.signaldock.io',
|
|
10
|
+
`classification` text,
|
|
11
|
+
`privacy_tier` text NOT NULL DEFAULT 'public',
|
|
12
|
+
`capabilities` text NOT NULL DEFAULT '[]',
|
|
13
|
+
`skills` text NOT NULL DEFAULT '[]',
|
|
14
|
+
`transport_config` text NOT NULL DEFAULT '{}',
|
|
15
|
+
`is_active` integer NOT NULL DEFAULT 1,
|
|
16
|
+
`last_used_at` integer,
|
|
17
|
+
`created_at` integer NOT NULL,
|
|
18
|
+
`updated_at` integer NOT NULL
|
|
19
|
+
);
|
|
20
|
+
--> statement-breakpoint
|
|
21
|
+
CREATE INDEX IF NOT EXISTS `idx_agent_credentials_active` ON `agent_credentials` (`is_active`);
|
|
22
|
+
--> statement-breakpoint
|
|
23
|
+
CREATE INDEX IF NOT EXISTS `idx_agent_credentials_last_used` ON `agent_credentials` (`last_used_at`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/cleo",
|
|
3
|
-
"version": "2026.4.
|
|
3
|
+
"version": "2026.4.68",
|
|
4
4
|
"description": "CLEO CLI — the assembled product consuming @cleocode/core",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/cli/index.js",
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
"tree-sitter-ruby": "^0.23.1",
|
|
29
29
|
"tree-sitter-rust": "0.23.1",
|
|
30
30
|
"tree-sitter-typescript": "^0.23.2",
|
|
31
|
-
"@cleocode/caamp": "2026.4.
|
|
32
|
-
"@cleocode/
|
|
33
|
-
"@cleocode/
|
|
34
|
-
"@cleocode/
|
|
35
|
-
"@cleocode/
|
|
36
|
-
"@cleocode/nexus": "2026.4.
|
|
37
|
-
"@cleocode/runtime": "2026.4.
|
|
31
|
+
"@cleocode/caamp": "2026.4.68",
|
|
32
|
+
"@cleocode/cant": "2026.4.68",
|
|
33
|
+
"@cleocode/contracts": "2026.4.68",
|
|
34
|
+
"@cleocode/core": "2026.4.68",
|
|
35
|
+
"@cleocode/lafs": "2026.4.68",
|
|
36
|
+
"@cleocode/nexus": "2026.4.68",
|
|
37
|
+
"@cleocode/runtime": "2026.4.68"
|
|
38
38
|
},
|
|
39
39
|
"engines": {
|
|
40
40
|
"node": ">=24.0.0"
|