@gonzih/cc-wire 0.1.2 → 0.1.4

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/README.md ADDED
@@ -0,0 +1,178 @@
1
+ # @gonzih/cc-wire
2
+
3
+ Single source of truth for Redis channel names, key patterns, and message shapes across the cc-suite (`cc-agent`, `cc-tg`, `cc-agent-ui`).
4
+
5
+ No runtime dependencies. No Redis client. Just constants, builders, and types.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ npm install @gonzih/cc-wire
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ```typescript
16
+ import {
17
+ wikiKey,
18
+ wikiUpdatedKey,
19
+ notifyChannel,
20
+ notifyListKey,
21
+ jobKey,
22
+ jobIndexKey,
23
+ chatLogKey,
24
+ TTL,
25
+ CAP,
26
+ } from "@gonzih/cc-wire";
27
+
28
+ // Wiki keys
29
+ const hash = wikiKey("org/repo"); // "cca:wiki:org/repo"
30
+ const ts = wikiUpdatedKey("org/repo"); // "cca:wiki:org/repo:updated"
31
+
32
+ // Job keys
33
+ const job = jobKey("abc-123"); // "cca:job:abc-123"
34
+ const idx = jobIndexKey("myns"); // "cca:jobs:myns"
35
+
36
+ // Notify
37
+ const chan = notifyChannel("myns"); // "cca:notify:myns"
38
+ const list = notifyListKey("myns"); // "cca:notify:myns" (same key, dual-purpose)
39
+
40
+ // Constants
41
+ TTL.JOB_SECONDS // 604800
42
+ CAP.CHAT_LOG // 500
43
+ ```
44
+
45
+ ## Key Reference
46
+
47
+ ### Wiki
48
+
49
+ | Builder | Pattern | Redis type | Description |
50
+ |---|---|---|---|
51
+ | `wikiKey(repoSlug)` | `cca:wiki:{repoSlug}` | HASH | Per-repo wiki pages. Field = page name, value = markdown. |
52
+ | `wikiUpdatedKey(repoSlug)` | `cca:wiki:{repoSlug}:updated` | STRING | ISO timestamp of last wiki update. |
53
+
54
+ ### Jobs
55
+
56
+ | Builder | Pattern | Redis type | Description |
57
+ |---|---|---|---|
58
+ | `jobKey(id)` | `cca:job:{id}` | STRING (JSON) | Full JobRecord, TTL 7d. |
59
+ | `jobOutputKey(id)` | `cca:job:{id}:output` | LIST | Log lines (RPUSH/LRANGE), TTL 7d. |
60
+ | `jobSignalKey(id)` | `cca:job:{id}:signal` | STRING | Control signal: `cancel` \| `wake`. |
61
+ | `jobInputKey(id)` | `cca:job:{id}:input` | LIST | In-flight messages (RPUSH/RPOP). |
62
+ | `jobOutputLiveChannel(id)` | `cca:job:{id}:output:live` | CHANNEL | Live output pub/sub. |
63
+ | `jobDoneChannel(id)` | `cca:job:done:{id}` | CHANNEL | Job completion pub/sub. |
64
+ | `jobDoneQueueKey(id)` | `cca:job:done:{id}:queue` | LIST | LPUSH/BLPOP queue for `wait_for_job`, TTL 7d. |
65
+ | `jobIndexKey(ns)` | `cca:jobs:{ns}` | SET | Job IDs per namespace. |
66
+
67
+ ### Event Stream
68
+
69
+ | Constant | Value | Description |
70
+ |---|---|---|
71
+ | `EVENT_STREAM` | `cca:event-stream` | Redis Stream — job status events. |
72
+ | `COORDINATOR_GROUP` | `coordinator` | Consumer group name. |
73
+
74
+ ### Notify / Chat
75
+
76
+ | Builder | Pattern | Description |
77
+ |---|---|---|
78
+ | `notifyChannel(ns)` | `cca:notify:{ns}` | CHANNEL — coordinator publishes job completion. |
79
+ | `notifyListKey(ns)` | `cca:notify:{ns}` | LIST — delivery queue (RPUSH/RPOP). Same key as channel (safe — Redis pub/sub and list namespaces are independent). |
80
+ | `notifyLogKey(ns)` | `cca:notify-log:{ns}` | LIST — persistent audit log, capped at `CAP.NOTIFY_LOG` (100). |
81
+ | `chatLogKey(ns)` | `cca:chat:log:{ns}` | LIST — chat history, capped at `CAP.CHAT_LOG` (500), LIFO. |
82
+ | `chatIncomingChannel(ns)` | `cca:chat:incoming:{ns}` | CHANNEL — UI → cc-tg. |
83
+ | `chatOutgoingChannel(ns)` | `cca:chat:outgoing:{ns}` | CHANNEL — cc-tg → UI. |
84
+
85
+ ### Meta-Agent
86
+
87
+ | Builder | Pattern | Description |
88
+ |---|---|---|
89
+ | `metaKey(ns)` | `cca:meta:{ns}` | STRING (JSON) — MetaAgentInfo state, TTL 30d. |
90
+ | `metaInputKey(ns)` | `cca:meta:{ns}:input` | LIST — input queue (RPUSH/RPOP). |
91
+ | `metaAgentStatusKey(ns)` | `cca:meta-agent:status:{ns}` | STRING (JSON) — live status, TTL 7d. |
92
+ | `META_AGENTS_INDEX` | `cca:meta:agents:index` | SET — canonical registry. |
93
+
94
+ ### Wiki
95
+
96
+ | Builder | Pattern | Description |
97
+ |---|---|---|
98
+ | `wikiKey(repoSlug)` | `cca:wiki:{repoSlug}` | HASH — wiki pages. Field = page name, value = markdown. |
99
+ | `wikiUpdatedKey(repoSlug)` | `cca:wiki:{repoSlug}:updated` | STRING — ISO timestamp of last update. |
100
+
101
+ ### Profiles
102
+
103
+ | Builder | Pattern | Description |
104
+ |---|---|---|
105
+ | `profileKey(name)` | `cca:profile:{name}` | STRING (JSON) — saved Profile. |
106
+ | `PROFILES_INDEX` | `cca:profiles:index` | SET — profile names. |
107
+
108
+ ### Crons
109
+
110
+ | Builder | Pattern | Description |
111
+ |---|---|---|
112
+ | `cronsKey(ns)` | `cca:crons:{ns}` | STRING (JSON array) — cron definitions. |
113
+ | `deletedCronsKey(ns)` | `cca:deleted-crons:{ns}` | SET — tombstone IDs, TTL 7d. |
114
+
115
+ ### Learnings
116
+
117
+ | Builder | Pattern | Description |
118
+ |---|---|---|
119
+ | `learningsKey(ns)` | `cca:learnings:{ns}` | LIST — learnings (LPUSH, capped at `CAP.LEARNINGS` = 50), TTL 90d, LIFO. |
120
+
121
+ ### Plans / Coordinator
122
+
123
+ | Builder | Pattern | Description |
124
+ |---|---|---|
125
+ | `planKey(id)` | `cca:plan:{id}` | STRING (JSON) — PlanRecord, TTL 30d. |
126
+ | `coordinatorPlanKey(jobId)` | `cca:coordinator:plan:{jobId}` | STRING — coordinator plan JSON. |
127
+
128
+ ### Swarm
129
+
130
+ | Builder | Pattern | Description |
131
+ |---|---|---|
132
+ | `swarmKey(id)` | `cca:swarm:{id}` | STRING (JSON) — SwarmRecord. |
133
+ | `SWARM_REQUESTS_KEY` | `cca:swarm:requests` | LIST — task request queue (LPUSH). |
134
+
135
+ ### Version / Token
136
+
137
+ | Constant | Value | Description |
138
+ |---|---|---|
139
+ | `CC_AGENT_VERSION_KEY` | `cca:meta:cc-agent:version` | STRING — running cc-agent version. |
140
+ | `CC_TG_VERSION_KEY` | `cca:meta:cc-tg:version` | STRING — running cc-tg version. |
141
+ | `TOKEN_INDEX_KEY` | `cca:token:index` | STRING — token rotation index. |
142
+
143
+ ### Voice (cc-tg only)
144
+
145
+ | Constant | Value | Description |
146
+ |---|---|---|
147
+ | `VOICE_PENDING_KEY` | `voice:pending` | LIST — transcription pending queue. |
148
+ | `VOICE_FAILED_KEY` | `voice:failed` | LIST — failure log, TTL 48h. |
149
+
150
+ ## Constants
151
+
152
+ ```typescript
153
+ TTL.JOB_SECONDS // 604800 (7 days)
154
+ TTL.PLAN_SECONDS // 2592000 (30 days)
155
+ TTL.LEARNINGS_SECONDS // 7776000 (90 days)
156
+ TTL.VOICE_FAILED_SECONDS // 172800 (48 hours)
157
+
158
+ CAP.NOTIFY_LOG // 100
159
+ CAP.CHAT_LOG // 500
160
+ CAP.LEARNINGS // 50
161
+ CAP.EVENT_STREAM // 500
162
+
163
+ TIMING.COORDINATOR_POLL_MS // 2000
164
+ TIMING.DEPENDENCY_TICK_MS // 3000
165
+ TIMING.INPUT_POLL_INTERVAL_MS // 3000
166
+ TIMING.META_AGENT_FLUSH_DELAY_MS // 1500
167
+ ```
168
+
169
+ ## Development
170
+
171
+ ```sh
172
+ npm run build # compile ESM + CJS
173
+ npm test # run tests (Node built-in test runner via tsx)
174
+ ```
175
+
176
+ ## License
177
+
178
+ MIT
@@ -12,7 +12,7 @@
12
12
  * All values match the exact strings used in the source repos as of 2026-05.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TIMING = exports.CAP = exports.TTL = exports.swarmKey = exports.deletedCronsKey = exports.cronsKey = exports.learningsKey = exports.metaAgentStatusKey = exports.metaInputKey = exports.metaKey = exports.chatOutgoingChannel = exports.chatIncomingChannel = exports.chatLogKey = exports.notifyLogKey = exports.notifyListKey = exports.notifyChannel = exports.profileKey = exports.planKey = exports.coordinatorPlanKey = exports.jobDoneQueueKey = exports.jobDoneChannel = exports.jobOutputLiveChannel = exports.jobInputKey = exports.jobSignalKey = exports.jobOutputKey = exports.jobKey = exports.jobIndexKey = exports.SWARM_REQUESTS_KEY = exports.VOICE_FAILED_KEY = exports.VOICE_PENDING_KEY = exports.CC_TG_VERSION_KEY = exports.JOB_INDEX_PREFIX = exports.JOB_INDEX_GLOB = exports.CC_AGENT_VERSION_KEY = exports.TOKEN_INDEX_KEY = exports.PROFILES_INDEX = exports.META_AGENTS_INDEX = exports.COORDINATOR_GROUP = exports.EVENT_STREAM = void 0;
15
+ exports.TIMING = exports.CAP = exports.TTL = exports.swarmKey = exports.wikiUpdatedKey = exports.wikiKey = exports.deletedCronsKey = exports.cronsKey = exports.learningsKey = exports.metaAgentStatusKey = exports.metaInputKey = exports.metaKey = exports.chatOutgoingChannel = exports.chatIncomingChannel = exports.chatLogKey = exports.notifyLogKey = exports.notifyListKey = exports.notifyChannel = exports.profileKey = exports.planKey = exports.coordinatorPlanKey = exports.jobDoneQueueKey = exports.jobDoneChannel = exports.jobOutputLiveChannel = exports.jobInputKey = exports.jobSignalKey = exports.jobOutputKey = exports.jobKey = exports.jobIndexKey = exports.SWARM_REQUESTS_KEY = exports.VOICE_FAILED_KEY = exports.VOICE_PENDING_KEY = exports.CC_TG_VERSION_KEY = exports.JOB_INDEX_PREFIX = exports.JOB_INDEX_GLOB = exports.CC_AGENT_VERSION_KEY = exports.TOKEN_INDEX_KEY = exports.PROFILES_INDEX = exports.META_AGENTS_INDEX = exports.COORDINATOR_GROUP = exports.EVENT_STREAM = void 0;
16
16
  // ─── Static Keys ─────────────────────────────────────────────────────────────
17
17
  /** Redis Stream written by cc-agent on every job status change. */
18
18
  exports.EVENT_STREAM = "cca:event-stream";
@@ -122,6 +122,16 @@ exports.cronsKey = cronsKey;
122
122
  /** SET — tombstone set of deleted cron IDs for a namespace, TTL 7 days. */
123
123
  const deletedCronsKey = (namespace) => `cca:deleted-crons:${namespace}`;
124
124
  exports.deletedCronsKey = deletedCronsKey;
125
+ // ─── Wiki Keys (dynamic) ──────────────────────────────────────────────────────
126
+ /**
127
+ * HASH — per-repo wiki pages.
128
+ * field = page name, value = markdown string.
129
+ */
130
+ const wikiKey = (repoSlug) => `cca:wiki:${repoSlug}`;
131
+ exports.wikiKey = wikiKey;
132
+ /** STRING — ISO timestamp of last update for a repo's wiki. */
133
+ const wikiUpdatedKey = (repoSlug) => `cca:wiki:${repoSlug}:updated`;
134
+ exports.wikiUpdatedKey = wikiUpdatedKey;
125
135
  // ─── Swarm Keys (dynamic) ─────────────────────────────────────────────────────
126
136
  /** STRING (JSON) — SwarmRecord for a given swarm ID. */
127
137
  const swarmKey = (swarmId) => `cca:swarm:${swarmId}`;
@@ -87,6 +87,13 @@ export declare const learningsKey: (namespace: string) => string;
87
87
  export declare const cronsKey: (namespace: string) => string;
88
88
  /** SET — tombstone set of deleted cron IDs for a namespace, TTL 7 days. */
89
89
  export declare const deletedCronsKey: (namespace: string) => string;
90
+ /**
91
+ * HASH — per-repo wiki pages.
92
+ * field = page name, value = markdown string.
93
+ */
94
+ export declare const wikiKey: (repoSlug: string) => `cca:wiki:${string}`;
95
+ /** STRING — ISO timestamp of last update for a repo's wiki. */
96
+ export declare const wikiUpdatedKey: (repoSlug: string) => `cca:wiki:${string}:updated`;
90
97
  /** STRING (JSON) — SwarmRecord for a given swarm ID. */
91
98
  export declare const swarmKey: (swarmId: string) => string;
92
99
  export declare const TTL: {
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/channels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,mEAAmE;AACnE,eAAO,MAAM,YAAY,qBAAqB,CAAC;AAE/C,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AAEzD,0CAA0C;AAC1C,eAAO,MAAM,cAAc,uBAAuB,CAAC;AAEnD,wDAAwD;AACxD,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,6CAA6C;AAC7C,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAEhE,qEAAqE;AACrE,eAAO,MAAM,cAAc,eAAe,CAAC;AAE3C,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,cAAc,CAAC;AAE5C,0CAA0C;AAC1C,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D,4EAA4E;AAC5E,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAIvD,2CAA2C;AAC3C,eAAO,MAAM,WAAW,GAAI,WAAW,MAAM,KAAG,MACvB,CAAC;AAE1B,kDAAkD;AAClD,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,KAAG,MACnB,CAAC;AAErB,oDAAoD;AACpD,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,MAClB,CAAC;AAE5B,6EAA6E;AAC7E,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,MAClB,CAAC;AAE5B,uEAAuE;AACvE,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MAClB,CAAC;AAE3B,uEAAuE;AACvE,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,MACrB,CAAC;AAEjC,uDAAuD;AACvD,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,MACtB,CAAC;AAE1B,6DAA6D;AAC7D,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MACjB,CAAC;AAIhC,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MAClB,CAAC;AAIlC,+CAA+C;AAC/C,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,KAAG,MACnB,CAAC;AAIvB,qCAAqC;AACrC,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,KAAG,MACnB,CAAC;AAIxB,iFAAiF;AACjF,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,KAAG,MACvB,CAAC;AAE5B;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,WAAW,MAAM,KAAG,MACvB,CAAC;AAE5B,2DAA2D;AAC3D,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,MAClB,CAAC;AAEhC,2EAA2E;AAC3E,eAAO,MAAM,UAAU,GAAI,WAAW,MAAM,KAAG,MAClB,CAAC;AAE9B,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,KAAG,MACtB,CAAC;AAEnC,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,GAAI,WAAW,MAAM,KAAG,MACtB,CAAC;AAInC,wDAAwD;AACxD,eAAO,MAAM,OAAO,GAAI,WAAW,MAAM,KAAG,MACnB,CAAC;AAE1B,8EAA8E;AAC9E,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,MAClB,CAAC;AAEhC,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,KAAG,MACjB,CAAC;AAIvC,gFAAgF;AAChF,eAAO,MAAM,YAAY,GAAI,WAAW,MAAM,KAAG,MACnB,CAAC;AAI/B,kEAAkE;AAClE,eAAO,MAAM,QAAQ,GAAI,WAAW,MAAM,KAAG,MACnB,CAAC;AAE3B,2EAA2E;AAC3E,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,MAClB,CAAC;AAInC,wDAAwD;AACxD,eAAO,MAAM,QAAQ,GAAI,SAAS,MAAM,KAAG,MACnB,CAAC;AAIzB,eAAO,MAAM,GAAG;IACd,qFAAqF;;IAErF,oDAAoD;;IAEpD,4CAA4C;;IAE5C,+CAA+C;;CAEvC,CAAC;AAIX,eAAO,MAAM,GAAG;IACd,4DAA4D;;IAE5D,0DAA0D;;IAE1D,2DAA2D;;IAE3D,4DAA4D;;CAEpD,CAAC;AAIX,eAAO,MAAM,MAAM;IACjB,6EAA6E;;IAE7E,mEAAmE;;IAEnE,gEAAgE;;IAEhE,4EAA4E;;CAEpE,CAAC"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/channels.ts"],"names":[],"mappings":"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"}
@@ -96,6 +96,14 @@ export const learningsKey = (namespace) => `cca:learnings:${namespace}`;
96
96
  export const cronsKey = (namespace) => `cca:crons:${namespace}`;
97
97
  /** SET — tombstone set of deleted cron IDs for a namespace, TTL 7 days. */
98
98
  export const deletedCronsKey = (namespace) => `cca:deleted-crons:${namespace}`;
99
+ // ─── Wiki Keys (dynamic) ──────────────────────────────────────────────────────
100
+ /**
101
+ * HASH — per-repo wiki pages.
102
+ * field = page name, value = markdown string.
103
+ */
104
+ export const wikiKey = (repoSlug) => `cca:wiki:${repoSlug}`;
105
+ /** STRING — ISO timestamp of last update for a repo's wiki. */
106
+ export const wikiUpdatedKey = (repoSlug) => `cca:wiki:${repoSlug}:updated`;
99
107
  // ─── Swarm Keys (dynamic) ─────────────────────────────────────────────────────
100
108
  /** STRING (JSON) — SwarmRecord for a given swarm ID. */
101
109
  export const swarmKey = (swarmId) => `cca:swarm:${swarmId}`;
@@ -1 +1 @@
1
- {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/channels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/channels.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gonzih/cc-wire",
3
- "version": "0.1.2",
3
+ "version": "0.1.4",
4
4
  "description": "Single source of truth for Redis channel names, key patterns, and message shapes across the cc-suite (cc-tg, cc-agent, cc-agent-ui)",
5
5
  "type": "module",
6
6
  "repository": {
@@ -24,11 +24,14 @@
24
24
  "dist/"
25
25
  ],
26
26
  "scripts": {
27
- "build": "npm run build:esm && npm run build:cjs",
27
+ "build": "rm -rf dist && npm run build:esm && npm run build:cjs",
28
28
  "build:esm": "tsc -p tsconfig.json",
29
- "build:cjs": "tsc -p tsconfig.cjs.json && node scripts/fix-cjs.mjs"
29
+ "build:cjs": "tsc -p tsconfig.cjs.json && node scripts/fix-cjs.mjs",
30
+ "test": "node --import tsx/esm --test src/channels.test.ts"
30
31
  },
31
32
  "devDependencies": {
33
+ "@types/node": "22.15.21",
34
+ "tsx": "4.19.3",
32
35
  "typescript": "5.8.3"
33
36
  },
34
37
  "keywords": [