@gonzih/cc-wire 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/README.md +178 -0
- package/dist/cjs/channels.cjs +11 -1
- package/dist/esm/channels.d.ts +7 -0
- package/dist/esm/channels.d.ts.map +1 -1
- package/dist/esm/channels.js +8 -0
- package/dist/esm/channels.js.map +1 -1
- package/dist/esm/channels.test.d.ts +2 -0
- package/dist/esm/channels.test.d.ts.map +1 -0
- package/dist/esm/channels.test.js +46 -0
- package/dist/esm/channels.test.js.map +1 -0
- package/package.json +5 -2
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
|
package/dist/cjs/channels.cjs
CHANGED
|
@@ -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}`;
|
package/dist/esm/channels.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/esm/channels.js
CHANGED
|
@@ -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}`;
|
package/dist/esm/channels.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.test.d.ts","sourceRoot":"","sources":["../../src/channels.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { strict as assert } from "node:assert";
|
|
2
|
+
import { describe, it } from "node:test";
|
|
3
|
+
import { wikiKey, wikiUpdatedKey, notifyChannel, notifyListKey, notifyLogKey, jobKey, jobIndexKey, chatLogKey, chatIncomingChannel, chatOutgoingChannel, metaKey, cronsKey, swarmKey, planKey, profileKey, learningsKey, TTL, CAP, } from "./channels.js";
|
|
4
|
+
describe("wiki keys", () => {
|
|
5
|
+
it("wikiKey builds correct hash key", () => {
|
|
6
|
+
assert.equal(wikiKey("gonzih/cc-agent"), "cca:wiki:gonzih/cc-agent");
|
|
7
|
+
});
|
|
8
|
+
it("wikiUpdatedKey builds correct timestamp key", () => {
|
|
9
|
+
assert.equal(wikiUpdatedKey("gonzih/cc-agent"), "cca:wiki:gonzih/cc-agent:updated");
|
|
10
|
+
});
|
|
11
|
+
it("wikiKey and wikiUpdatedKey keys are distinct", () => {
|
|
12
|
+
const slug = "org/repo";
|
|
13
|
+
assert.notEqual(wikiKey(slug), wikiUpdatedKey(slug));
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
describe("notify keys", () => {
|
|
17
|
+
it("notifyChannel", () => assert.equal(notifyChannel("myns"), "cca:notify:myns"));
|
|
18
|
+
it("notifyListKey matches notifyChannel (dual-purpose key)", () => assert.equal(notifyListKey("myns"), notifyChannel("myns")));
|
|
19
|
+
it("notifyLogKey", () => assert.equal(notifyLogKey("myns"), "cca:notify-log:myns"));
|
|
20
|
+
});
|
|
21
|
+
describe("job keys", () => {
|
|
22
|
+
it("jobKey", () => assert.equal(jobKey("abc"), "cca:job:abc"));
|
|
23
|
+
it("jobIndexKey", () => assert.equal(jobIndexKey("ns"), "cca:jobs:ns"));
|
|
24
|
+
});
|
|
25
|
+
describe("chat keys", () => {
|
|
26
|
+
it("chatLogKey", () => assert.equal(chatLogKey("ns"), "cca:chat:log:ns"));
|
|
27
|
+
it("chatIncomingChannel", () => assert.equal(chatIncomingChannel("ns"), "cca:chat:incoming:ns"));
|
|
28
|
+
it("chatOutgoingChannel", () => assert.equal(chatOutgoingChannel("ns"), "cca:chat:outgoing:ns"));
|
|
29
|
+
});
|
|
30
|
+
describe("misc keys", () => {
|
|
31
|
+
it("metaKey", () => assert.equal(metaKey("ns"), "cca:meta:ns"));
|
|
32
|
+
it("cronsKey", () => assert.equal(cronsKey("ns"), "cca:crons:ns"));
|
|
33
|
+
it("swarmKey", () => assert.equal(swarmKey("id"), "cca:swarm:id"));
|
|
34
|
+
it("planKey", () => assert.equal(planKey("id"), "cca:plan:id"));
|
|
35
|
+
it("profileKey", () => assert.equal(profileKey("default"), "cca:profile:default"));
|
|
36
|
+
it("learningsKey", () => assert.equal(learningsKey("ns"), "cca:learnings:ns"));
|
|
37
|
+
});
|
|
38
|
+
describe("TTL and CAP constants are positive integers", () => {
|
|
39
|
+
for (const [k, v] of Object.entries(TTL)) {
|
|
40
|
+
it(`TTL.${k} > 0`, () => assert.ok(v > 0, `${k} should be positive`));
|
|
41
|
+
}
|
|
42
|
+
for (const [k, v] of Object.entries(CAP)) {
|
|
43
|
+
it(`CAP.${k} > 0`, () => assert.ok(v > 0, `${k} should be positive`));
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=channels.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channels.test.js","sourceRoot":"","sources":["../../src/channels.test.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.
|
|
3
|
+
"version": "0.1.3",
|
|
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": {
|
|
@@ -26,9 +26,12 @@
|
|
|
26
26
|
"scripts": {
|
|
27
27
|
"build": "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": [
|