@kb-labs/steward-entry 0.1.0
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 +5 -0
- package/dist/commands/commitment-add.d.ts +15 -0
- package/dist/commands/commitment-add.js +53 -0
- package/dist/commands/commitment-add.js.map +1 -0
- package/dist/commands/commitment-done.d.ts +10 -0
- package/dist/commands/commitment-done.js +43 -0
- package/dist/commands/commitment-done.js.map +1 -0
- package/dist/commands/commitment-drop.d.ts +11 -0
- package/dist/commands/commitment-drop.js +43 -0
- package/dist/commands/commitment-drop.js.map +1 -0
- package/dist/commands/commitment-list.d.ts +13 -0
- package/dist/commands/commitment-list.js +37 -0
- package/dist/commands/commitment-list.js.map +1 -0
- package/dist/commands/commitment-snooze.d.ts +12 -0
- package/dist/commands/commitment-snooze.js +54 -0
- package/dist/commands/commitment-snooze.js.map +1 -0
- package/dist/commands/company-add.d.ts +11 -0
- package/dist/commands/company-add.js +34 -0
- package/dist/commands/company-add.js.map +1 -0
- package/dist/commands/company-list.d.ts +10 -0
- package/dist/commands/company-list.js +32 -0
- package/dist/commands/company-list.js.map +1 -0
- package/dist/commands/event-add.d.ts +14 -0
- package/dist/commands/event-add.js +46 -0
- package/dist/commands/event-add.js.map +1 -0
- package/dist/commands/event-list.d.ts +13 -0
- package/dist/commands/event-list.js +38 -0
- package/dist/commands/event-list.js.map +1 -0
- package/dist/commands/member-add.d.ts +15 -0
- package/dist/commands/member-add.js +50 -0
- package/dist/commands/member-add.js.map +1 -0
- package/dist/commands/member-list.d.ts +10 -0
- package/dist/commands/member-list.js +37 -0
- package/dist/commands/member-list.js.map +1 -0
- package/dist/commands/person-add.d.ts +16 -0
- package/dist/commands/person-add.js +52 -0
- package/dist/commands/person-add.js.map +1 -0
- package/dist/commands/person-get.d.ts +10 -0
- package/dist/commands/person-get.js +43 -0
- package/dist/commands/person-get.js.map +1 -0
- package/dist/commands/person-list.d.ts +10 -0
- package/dist/commands/person-list.js +32 -0
- package/dist/commands/person-list.js.map +1 -0
- package/dist/commands/person-update.d.ts +13 -0
- package/dist/commands/person-update.js +53 -0
- package/dist/commands/person-update.js.map +1 -0
- package/dist/commands/project-add.d.ts +13 -0
- package/dist/commands/project-add.js +38 -0
- package/dist/commands/project-add.js.map +1 -0
- package/dist/commands/project-get.d.ts +10 -0
- package/dist/commands/project-get.js +43 -0
- package/dist/commands/project-get.js.map +1 -0
- package/dist/commands/project-list.d.ts +11 -0
- package/dist/commands/project-list.js +34 -0
- package/dist/commands/project-list.js.map +1 -0
- package/dist/commands/project-update.d.ts +12 -0
- package/dist/commands/project-update.js +47 -0
- package/dist/commands/project-update.js.map +1 -0
- package/dist/commands/resource-add.d.ts +14 -0
- package/dist/commands/resource-add.js +44 -0
- package/dist/commands/resource-add.js.map +1 -0
- package/dist/commands/resource-list.d.ts +10 -0
- package/dist/commands/resource-list.js +37 -0
- package/dist/commands/resource-list.js.map +1 -0
- package/dist/commands/review.d.ts +10 -0
- package/dist/commands/review.js +35 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/topic-add.d.ts +12 -0
- package/dist/commands/topic-add.js +44 -0
- package/dist/commands/topic-add.js.map +1 -0
- package/dist/commands/topic-list.d.ts +10 -0
- package/dist/commands/topic-list.js +32 -0
- package/dist/commands/topic-list.js.map +1 -0
- package/dist/commands/who.d.ts +11 -0
- package/dist/commands/who.js +42 -0
- package/dist/commands/who.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +406 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/daily-review.d.ts +11 -0
- package/dist/jobs/daily-review.js +47 -0
- package/dist/jobs/daily-review.js.map +1 -0
- package/dist/jobs/export-backup.d.ts +13 -0
- package/dist/jobs/export-backup.js +32 -0
- package/dist/jobs/export-backup.js.map +1 -0
- package/dist/manifest.d.ts +490 -0
- package/dist/manifest.js +406 -0
- package/dist/manifest.js.map +1 -0
- package/dist/manifest.json +728 -0
- package/package.json +55 -0
|
@@ -0,0 +1,728 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "kb.plugin/3",
|
|
3
|
+
"id": "@kb-labs/steward",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"display": {
|
|
6
|
+
"name": "Steward",
|
|
7
|
+
"description": "Personal PM/CRM tool-layer for AI agents: projects, people, commitments, and routing across dozens of parallel projects.",
|
|
8
|
+
"tags": [
|
|
9
|
+
"pm",
|
|
10
|
+
"crm",
|
|
11
|
+
"agents",
|
|
12
|
+
"productivity"
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"platform": {
|
|
16
|
+
"requires": [
|
|
17
|
+
"documentDatabase"
|
|
18
|
+
]
|
|
19
|
+
},
|
|
20
|
+
"cli": {
|
|
21
|
+
"groupMeta": [
|
|
22
|
+
{
|
|
23
|
+
"name": "steward",
|
|
24
|
+
"description": "Personal PM/CRM for AI agents"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"commands": [
|
|
28
|
+
{
|
|
29
|
+
"path": "steward project add",
|
|
30
|
+
"describe": "Create a new project",
|
|
31
|
+
"handler": "./commands/project-add.js#default",
|
|
32
|
+
"flags": [
|
|
33
|
+
{
|
|
34
|
+
"name": "name",
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Project name",
|
|
37
|
+
"required": true
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "status",
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "active | paused | archived",
|
|
43
|
+
"default": "active"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "description",
|
|
47
|
+
"type": "string",
|
|
48
|
+
"description": "Free-text description"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "json",
|
|
52
|
+
"type": "boolean",
|
|
53
|
+
"description": "Emit JSON instead of text"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"examples": [
|
|
57
|
+
"kb steward project add --name=\"Acme API\" --description=\"Payments backend\""
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"path": "steward project get",
|
|
62
|
+
"describe": "Get a project card: status, resources, and members",
|
|
63
|
+
"handler": "./commands/project-get.js#default",
|
|
64
|
+
"flags": [
|
|
65
|
+
{
|
|
66
|
+
"name": "json",
|
|
67
|
+
"type": "boolean",
|
|
68
|
+
"description": "Emit JSON instead of text"
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"examples": [
|
|
72
|
+
"kb steward project get \"Acme API\"",
|
|
73
|
+
"kb steward project get prj_01H..."
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"path": "steward project list",
|
|
78
|
+
"describe": "List projects, optionally filtered by status",
|
|
79
|
+
"handler": "./commands/project-list.js#default",
|
|
80
|
+
"flags": [
|
|
81
|
+
{
|
|
82
|
+
"name": "status",
|
|
83
|
+
"type": "string",
|
|
84
|
+
"description": "active | paused | archived"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "json",
|
|
88
|
+
"type": "boolean",
|
|
89
|
+
"description": "Emit JSON instead of text"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"examples": [
|
|
93
|
+
"kb steward project list",
|
|
94
|
+
"kb steward project list --status=active"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"path": "steward project update",
|
|
99
|
+
"describe": "Update a project's status or description",
|
|
100
|
+
"handler": "./commands/project-update.js#default",
|
|
101
|
+
"flags": [
|
|
102
|
+
{
|
|
103
|
+
"name": "status",
|
|
104
|
+
"type": "string",
|
|
105
|
+
"description": "active | paused | archived"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "description",
|
|
109
|
+
"type": "string",
|
|
110
|
+
"description": "New description"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "json",
|
|
114
|
+
"type": "boolean",
|
|
115
|
+
"description": "Emit JSON instead of text"
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"examples": [
|
|
119
|
+
"kb steward project update prj_01H... --status=paused"
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"path": "steward resource add",
|
|
124
|
+
"describe": "Attach a resource to a project (repo, stand, dashboard, doc, ...)",
|
|
125
|
+
"handler": "./commands/resource-add.js#default",
|
|
126
|
+
"flags": [
|
|
127
|
+
{
|
|
128
|
+
"name": "type",
|
|
129
|
+
"type": "string",
|
|
130
|
+
"description": "Free-form kind, e.g. repo, dev-stand, dashboard",
|
|
131
|
+
"required": true
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"name": "label",
|
|
135
|
+
"type": "string",
|
|
136
|
+
"description": "Human-readable label",
|
|
137
|
+
"required": true
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "url",
|
|
141
|
+
"type": "string",
|
|
142
|
+
"description": "External link, if any"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "content",
|
|
146
|
+
"type": "string",
|
|
147
|
+
"description": "Stored markdown content, if any"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"name": "json",
|
|
151
|
+
"type": "boolean",
|
|
152
|
+
"description": "Emit JSON instead of text"
|
|
153
|
+
}
|
|
154
|
+
],
|
|
155
|
+
"examples": [
|
|
156
|
+
"kb steward resource add prj_01H... --type=repo --url=https://github.com/acme/api"
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"path": "steward resource list",
|
|
161
|
+
"describe": "List resources attached to a project",
|
|
162
|
+
"handler": "./commands/resource-list.js#default",
|
|
163
|
+
"flags": [
|
|
164
|
+
{
|
|
165
|
+
"name": "json",
|
|
166
|
+
"type": "boolean",
|
|
167
|
+
"description": "Emit JSON instead of text"
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
"examples": [
|
|
171
|
+
"kb steward resource list prj_01H..."
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"path": "steward person add",
|
|
176
|
+
"describe": "Add a contact. Returns a possibleDuplicates warning, not an error, on a name match",
|
|
177
|
+
"handler": "./commands/person-add.js#default",
|
|
178
|
+
"flags": [
|
|
179
|
+
{
|
|
180
|
+
"name": "name",
|
|
181
|
+
"type": "string",
|
|
182
|
+
"description": "Full name",
|
|
183
|
+
"required": true
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"name": "topics",
|
|
187
|
+
"type": "string",
|
|
188
|
+
"description": "Comma-separated global competencies"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"name": "company",
|
|
192
|
+
"type": "string",
|
|
193
|
+
"description": "Company id"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"name": "json",
|
|
197
|
+
"type": "boolean",
|
|
198
|
+
"description": "Emit JSON instead of text"
|
|
199
|
+
}
|
|
200
|
+
],
|
|
201
|
+
"examples": [
|
|
202
|
+
"kb steward person add --name=\"Ivanov\" --topics=frontend,architecture"
|
|
203
|
+
]
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"path": "steward person update",
|
|
207
|
+
"describe": "Update a contact's name, topics, or company",
|
|
208
|
+
"handler": "./commands/person-update.js#default",
|
|
209
|
+
"flags": [
|
|
210
|
+
{
|
|
211
|
+
"name": "name",
|
|
212
|
+
"type": "string",
|
|
213
|
+
"description": "New name"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"name": "topics",
|
|
217
|
+
"type": "string",
|
|
218
|
+
"description": "Comma-separated global competencies (replaces existing)"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"name": "company",
|
|
222
|
+
"type": "string",
|
|
223
|
+
"description": "Company id"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"name": "json",
|
|
227
|
+
"type": "boolean",
|
|
228
|
+
"description": "Emit JSON instead of text"
|
|
229
|
+
}
|
|
230
|
+
],
|
|
231
|
+
"examples": [
|
|
232
|
+
"kb steward person update per_01H... --topics=frontend,backend"
|
|
233
|
+
]
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"path": "steward person get",
|
|
237
|
+
"describe": "Get a contact by id or exact name",
|
|
238
|
+
"handler": "./commands/person-get.js#default",
|
|
239
|
+
"flags": [
|
|
240
|
+
{
|
|
241
|
+
"name": "json",
|
|
242
|
+
"type": "boolean",
|
|
243
|
+
"description": "Emit JSON instead of text"
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
"examples": [
|
|
247
|
+
"kb steward person get \"Ivanov\""
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"path": "steward person list",
|
|
252
|
+
"describe": "List every known contact",
|
|
253
|
+
"handler": "./commands/person-list.js#default",
|
|
254
|
+
"flags": [
|
|
255
|
+
{
|
|
256
|
+
"name": "json",
|
|
257
|
+
"type": "boolean",
|
|
258
|
+
"description": "Emit JSON instead of text"
|
|
259
|
+
}
|
|
260
|
+
],
|
|
261
|
+
"examples": [
|
|
262
|
+
"kb steward person list"
|
|
263
|
+
]
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"path": "steward company add",
|
|
267
|
+
"describe": "Add a company (thin — just a name to link people to)",
|
|
268
|
+
"handler": "./commands/company-add.js#default",
|
|
269
|
+
"flags": [
|
|
270
|
+
{
|
|
271
|
+
"name": "name",
|
|
272
|
+
"type": "string",
|
|
273
|
+
"description": "Company name",
|
|
274
|
+
"required": true
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"name": "json",
|
|
278
|
+
"type": "boolean",
|
|
279
|
+
"description": "Emit JSON instead of text"
|
|
280
|
+
}
|
|
281
|
+
],
|
|
282
|
+
"examples": [
|
|
283
|
+
"kb steward company add --name=\"Acme Corp\""
|
|
284
|
+
]
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"path": "steward company list",
|
|
288
|
+
"describe": "List companies",
|
|
289
|
+
"handler": "./commands/company-list.js#default",
|
|
290
|
+
"flags": [
|
|
291
|
+
{
|
|
292
|
+
"name": "json",
|
|
293
|
+
"type": "boolean",
|
|
294
|
+
"description": "Emit JSON instead of text"
|
|
295
|
+
}
|
|
296
|
+
],
|
|
297
|
+
"examples": [
|
|
298
|
+
"kb steward company list"
|
|
299
|
+
]
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"path": "steward member add",
|
|
303
|
+
"describe": "Link a person to a project with a role and fallback priority",
|
|
304
|
+
"handler": "./commands/member-add.js#default",
|
|
305
|
+
"flags": [
|
|
306
|
+
{
|
|
307
|
+
"name": "person",
|
|
308
|
+
"type": "string",
|
|
309
|
+
"description": "Person id",
|
|
310
|
+
"required": true
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"name": "project",
|
|
314
|
+
"type": "string",
|
|
315
|
+
"description": "Project id",
|
|
316
|
+
"required": true
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"name": "role",
|
|
320
|
+
"type": "string",
|
|
321
|
+
"description": "Role in this project",
|
|
322
|
+
"required": true
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
"name": "topics",
|
|
326
|
+
"type": "string",
|
|
327
|
+
"description": "Comma-separated project-scoped competencies"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"name": "priority",
|
|
331
|
+
"type": "number",
|
|
332
|
+
"description": "Lower = contacted first",
|
|
333
|
+
"default": 0
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"name": "json",
|
|
337
|
+
"type": "boolean",
|
|
338
|
+
"description": "Emit JSON instead of text"
|
|
339
|
+
}
|
|
340
|
+
],
|
|
341
|
+
"examples": [
|
|
342
|
+
"kb steward member add --person=per_01H... --project=prj_01H... --role=lead --priority=0"
|
|
343
|
+
]
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"path": "steward member list",
|
|
347
|
+
"describe": "List members of a project, ordered by fallback priority",
|
|
348
|
+
"handler": "./commands/member-list.js#default",
|
|
349
|
+
"flags": [
|
|
350
|
+
{
|
|
351
|
+
"name": "json",
|
|
352
|
+
"type": "boolean",
|
|
353
|
+
"description": "Emit JSON instead of text"
|
|
354
|
+
}
|
|
355
|
+
],
|
|
356
|
+
"examples": [
|
|
357
|
+
"kb steward member list prj_01H..."
|
|
358
|
+
]
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"path": "steward who",
|
|
362
|
+
"describe": "Find who to contact about a topic. With --project, project-scoped members take priority (fallback chain); otherwise matches global competencies across every contact",
|
|
363
|
+
"handler": "./commands/who.js#default",
|
|
364
|
+
"flags": [
|
|
365
|
+
{
|
|
366
|
+
"name": "project",
|
|
367
|
+
"type": "string",
|
|
368
|
+
"description": "Prefer members of this project"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"name": "json",
|
|
372
|
+
"type": "boolean",
|
|
373
|
+
"description": "Emit JSON instead of text"
|
|
374
|
+
}
|
|
375
|
+
],
|
|
376
|
+
"examples": [
|
|
377
|
+
"kb steward who \"frontend\" --project=prj_01H...",
|
|
378
|
+
"kb steward who \"grafana\""
|
|
379
|
+
]
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"path": "steward commitment add",
|
|
383
|
+
"describe": "Record a promise made to a person, with an optional soft reminder date",
|
|
384
|
+
"handler": "./commands/commitment-add.js#default",
|
|
385
|
+
"flags": [
|
|
386
|
+
{
|
|
387
|
+
"name": "text",
|
|
388
|
+
"type": "string",
|
|
389
|
+
"description": "What was promised",
|
|
390
|
+
"required": true
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"name": "person",
|
|
394
|
+
"type": "string",
|
|
395
|
+
"description": "Person id"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"name": "project",
|
|
399
|
+
"type": "string",
|
|
400
|
+
"description": "Project id"
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
"name": "remind-at",
|
|
404
|
+
"type": "string",
|
|
405
|
+
"description": "ISO date/time for the reminder"
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"name": "stale-after-days",
|
|
409
|
+
"type": "number",
|
|
410
|
+
"description": "Days of silence before it counts as stale",
|
|
411
|
+
"default": 14
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"name": "json",
|
|
415
|
+
"type": "boolean",
|
|
416
|
+
"description": "Emit JSON instead of text"
|
|
417
|
+
}
|
|
418
|
+
],
|
|
419
|
+
"examples": [
|
|
420
|
+
"kb steward commitment add --text=\"Send X\" --person=per_01H... --remind-at=2026-09-01"
|
|
421
|
+
]
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"path": "steward commitment list",
|
|
425
|
+
"describe": "List commitments, optionally only the stale (overdue, unsnoozed) ones",
|
|
426
|
+
"handler": "./commands/commitment-list.js#default",
|
|
427
|
+
"flags": [
|
|
428
|
+
{
|
|
429
|
+
"name": "status",
|
|
430
|
+
"type": "string",
|
|
431
|
+
"description": "open | done | dropped"
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"name": "project",
|
|
435
|
+
"type": "string",
|
|
436
|
+
"description": "Project id"
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"name": "stale-only",
|
|
440
|
+
"type": "boolean",
|
|
441
|
+
"description": "Only overdue, unsnoozed, open commitments"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"name": "json",
|
|
445
|
+
"type": "boolean",
|
|
446
|
+
"description": "Emit JSON instead of text"
|
|
447
|
+
}
|
|
448
|
+
],
|
|
449
|
+
"examples": [
|
|
450
|
+
"kb steward commitment list --stale-only"
|
|
451
|
+
]
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"path": "steward commitment done",
|
|
455
|
+
"describe": "Mark a commitment fulfilled",
|
|
456
|
+
"handler": "./commands/commitment-done.js#default",
|
|
457
|
+
"flags": [
|
|
458
|
+
{
|
|
459
|
+
"name": "json",
|
|
460
|
+
"type": "boolean",
|
|
461
|
+
"description": "Emit JSON instead of text"
|
|
462
|
+
}
|
|
463
|
+
],
|
|
464
|
+
"examples": [
|
|
465
|
+
"kb steward commitment done cmt_01H..."
|
|
466
|
+
]
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"path": "steward commitment drop",
|
|
470
|
+
"describe": "Cancel a commitment — reason is required and recorded in history",
|
|
471
|
+
"handler": "./commands/commitment-drop.js#default",
|
|
472
|
+
"flags": [
|
|
473
|
+
{
|
|
474
|
+
"name": "reason",
|
|
475
|
+
"type": "string",
|
|
476
|
+
"description": "Why it was dropped",
|
|
477
|
+
"required": true
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"name": "json",
|
|
481
|
+
"type": "boolean",
|
|
482
|
+
"description": "Emit JSON instead of text"
|
|
483
|
+
}
|
|
484
|
+
],
|
|
485
|
+
"examples": [
|
|
486
|
+
"kb steward commitment drop cmt_01H... --reason=\"No longer relevant\""
|
|
487
|
+
]
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"path": "steward commitment snooze",
|
|
491
|
+
"describe": "Postpone a commitment's reminder without cancelling it",
|
|
492
|
+
"handler": "./commands/commitment-snooze.js#default",
|
|
493
|
+
"flags": [
|
|
494
|
+
{
|
|
495
|
+
"name": "until",
|
|
496
|
+
"type": "string",
|
|
497
|
+
"description": "ISO date/time to snooze until",
|
|
498
|
+
"required": true
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"name": "reason",
|
|
502
|
+
"type": "string",
|
|
503
|
+
"description": "Why it was postponed"
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
"name": "json",
|
|
507
|
+
"type": "boolean",
|
|
508
|
+
"description": "Emit JSON instead of text"
|
|
509
|
+
}
|
|
510
|
+
],
|
|
511
|
+
"examples": [
|
|
512
|
+
"kb steward commitment snooze cmt_01H... --until=2026-09-15 --reason=\"Waiting on client\""
|
|
513
|
+
]
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
"path": "steward event add",
|
|
517
|
+
"describe": "Record a manual note against a project, person, or commitment — the primary tool for backfill import",
|
|
518
|
+
"handler": "./commands/event-add.js#default",
|
|
519
|
+
"flags": [
|
|
520
|
+
{
|
|
521
|
+
"name": "subject-type",
|
|
522
|
+
"type": "string",
|
|
523
|
+
"description": "project | person | commitment | company | resource",
|
|
524
|
+
"required": true
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"name": "subject-id",
|
|
528
|
+
"type": "string",
|
|
529
|
+
"description": "Id of the subject",
|
|
530
|
+
"required": true
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"name": "text",
|
|
534
|
+
"type": "string",
|
|
535
|
+
"description": "Note text"
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"name": "kind",
|
|
539
|
+
"type": "string",
|
|
540
|
+
"description": "Event kind",
|
|
541
|
+
"default": "note"
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"name": "json",
|
|
545
|
+
"type": "boolean",
|
|
546
|
+
"description": "Emit JSON instead of text"
|
|
547
|
+
}
|
|
548
|
+
],
|
|
549
|
+
"examples": [
|
|
550
|
+
"kb steward event add --subject-type=person --subject-id=per_01H... --text=\"Talked at the conference\""
|
|
551
|
+
]
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"path": "steward event list",
|
|
555
|
+
"describe": "Read the history log for a subject — \"what happened with X\"",
|
|
556
|
+
"handler": "./commands/event-list.js#default",
|
|
557
|
+
"flags": [
|
|
558
|
+
{
|
|
559
|
+
"name": "subject-type",
|
|
560
|
+
"type": "string",
|
|
561
|
+
"description": "project | person | commitment | company | resource"
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"name": "subject-id",
|
|
565
|
+
"type": "string",
|
|
566
|
+
"description": "Id of the subject"
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"name": "kind",
|
|
570
|
+
"type": "string",
|
|
571
|
+
"description": "Filter by event kind"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"name": "json",
|
|
575
|
+
"type": "boolean",
|
|
576
|
+
"description": "Emit JSON instead of text"
|
|
577
|
+
}
|
|
578
|
+
],
|
|
579
|
+
"examples": [
|
|
580
|
+
"kb steward event list --subject-type=project --subject-id=prj_01H..."
|
|
581
|
+
]
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"path": "steward topic add",
|
|
585
|
+
"describe": "Register a topic with aliases in the routing dictionary — do this deliberately, not automatically",
|
|
586
|
+
"handler": "./commands/topic-add.js#default",
|
|
587
|
+
"flags": [
|
|
588
|
+
{
|
|
589
|
+
"name": "name",
|
|
590
|
+
"type": "string",
|
|
591
|
+
"description": "Canonical topic name",
|
|
592
|
+
"required": true
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"name": "aliases",
|
|
596
|
+
"type": "string",
|
|
597
|
+
"description": "Comma-separated aliases"
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"name": "json",
|
|
601
|
+
"type": "boolean",
|
|
602
|
+
"description": "Emit JSON instead of text"
|
|
603
|
+
}
|
|
604
|
+
],
|
|
605
|
+
"examples": [
|
|
606
|
+
"kb steward topic add --name=frontend --aliases=фронт,фронтенд,front-end"
|
|
607
|
+
]
|
|
608
|
+
},
|
|
609
|
+
{
|
|
610
|
+
"path": "steward topic list",
|
|
611
|
+
"describe": "List the topic dictionary",
|
|
612
|
+
"handler": "./commands/topic-list.js#default",
|
|
613
|
+
"flags": [
|
|
614
|
+
{
|
|
615
|
+
"name": "json",
|
|
616
|
+
"type": "boolean",
|
|
617
|
+
"description": "Emit JSON instead of text"
|
|
618
|
+
}
|
|
619
|
+
],
|
|
620
|
+
"examples": [
|
|
621
|
+
"kb steward topic list"
|
|
622
|
+
]
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
"path": "steward review",
|
|
626
|
+
"describe": "Daily summary: stale commitments, upcoming reminders, active projects, and days since the last successful backup",
|
|
627
|
+
"handler": "./commands/review.js#default",
|
|
628
|
+
"flags": [
|
|
629
|
+
{
|
|
630
|
+
"name": "json",
|
|
631
|
+
"type": "boolean",
|
|
632
|
+
"description": "Emit JSON instead of text"
|
|
633
|
+
}
|
|
634
|
+
],
|
|
635
|
+
"examples": [
|
|
636
|
+
"kb steward review"
|
|
637
|
+
]
|
|
638
|
+
}
|
|
639
|
+
]
|
|
640
|
+
},
|
|
641
|
+
"cron": {
|
|
642
|
+
"schedules": [
|
|
643
|
+
{
|
|
644
|
+
"id": "daily-review",
|
|
645
|
+
"schedule": "1d",
|
|
646
|
+
"job": {
|
|
647
|
+
"type": "daily-review",
|
|
648
|
+
"payload": {}
|
|
649
|
+
},
|
|
650
|
+
"describe": "Generates the daily review artifact"
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"id": "export-backup",
|
|
654
|
+
"schedule": "1d",
|
|
655
|
+
"job": {
|
|
656
|
+
"type": "export-backup",
|
|
657
|
+
"payload": {}
|
|
658
|
+
},
|
|
659
|
+
"describe": "Snapshots all collections for the private-repo backup"
|
|
660
|
+
}
|
|
661
|
+
]
|
|
662
|
+
},
|
|
663
|
+
"jobs": {
|
|
664
|
+
"handlers": [
|
|
665
|
+
{
|
|
666
|
+
"id": "daily-review",
|
|
667
|
+
"describe": "Writes .kb/steward/reviews/<date>.md",
|
|
668
|
+
"handler": "./jobs/daily-review.js#default"
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"id": "export-backup",
|
|
672
|
+
"describe": "Writes .kb/steward/exports/<date>.json — git commit/push happens at the workflow level",
|
|
673
|
+
"handler": "./jobs/export-backup.js#default"
|
|
674
|
+
}
|
|
675
|
+
]
|
|
676
|
+
},
|
|
677
|
+
"artifacts": [
|
|
678
|
+
{
|
|
679
|
+
"id": "steward.review.md",
|
|
680
|
+
"pathTemplate": ".kb/steward/reviews/{date}.md",
|
|
681
|
+
"description": "Daily review — stale commitments, upcoming reminders, backup health."
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
"id": "steward.export.json",
|
|
685
|
+
"pathTemplate": ".kb/steward/exports/{date}.json",
|
|
686
|
+
"description": "Daily snapshot of every collection, for the private-repo backup."
|
|
687
|
+
}
|
|
688
|
+
],
|
|
689
|
+
"permissions": {
|
|
690
|
+
"fs": {
|
|
691
|
+
"read": [
|
|
692
|
+
".kb/**"
|
|
693
|
+
],
|
|
694
|
+
"write": [
|
|
695
|
+
".kb/**"
|
|
696
|
+
]
|
|
697
|
+
},
|
|
698
|
+
"env": {
|
|
699
|
+
"read": [
|
|
700
|
+
"HOME",
|
|
701
|
+
"USER",
|
|
702
|
+
"PATH",
|
|
703
|
+
"TMPDIR",
|
|
704
|
+
"NODE_ENV",
|
|
705
|
+
"KB_*"
|
|
706
|
+
]
|
|
707
|
+
},
|
|
708
|
+
"platform": {
|
|
709
|
+
"database": {
|
|
710
|
+
"document": {
|
|
711
|
+
"owns": [
|
|
712
|
+
"projects",
|
|
713
|
+
"resources",
|
|
714
|
+
"people",
|
|
715
|
+
"companies",
|
|
716
|
+
"project_members",
|
|
717
|
+
"commitments",
|
|
718
|
+
"events",
|
|
719
|
+
"topics"
|
|
720
|
+
],
|
|
721
|
+
"ddl": {
|
|
722
|
+
"ownCollections": true
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
}
|
|
728
|
+
}
|