wicked-crew 0.9.4 → 0.9.6

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.
Files changed (121) hide show
  1. package/dist/api/delivery-assurance.d.ts.map +1 -1
  2. package/dist/api/delivery-assurance.js +14 -3
  3. package/dist/api/delivery-assurance.js.map +1 -1
  4. package/dist/api/discovery-source.d.ts +4 -4
  5. package/dist/api/discovery-source.d.ts.map +1 -1
  6. package/dist/api/discovery-source.js +14 -8
  7. package/dist/api/discovery-source.js.map +1 -1
  8. package/dist/api/eval-sample.d.ts +12 -12
  9. package/dist/api/governance-steering.d.ts +2 -2
  10. package/dist/api/governance-steering.js +2 -2
  11. package/dist/api/governance-steering.js.map +1 -1
  12. package/dist/api/mcp.d.ts +4 -4
  13. package/dist/api/onboarding-capture.d.ts +1 -1
  14. package/dist/api/onboarding-capture.d.ts.map +1 -1
  15. package/dist/api/onboarding-capture.js +1 -1
  16. package/dist/api/onboarding-capture.js.map +1 -1
  17. package/dist/api/routes.d.ts +133 -131
  18. package/dist/api/routes.d.ts.map +1 -1
  19. package/dist/api/routes.js +37 -34
  20. package/dist/api/routes.js.map +1 -1
  21. package/dist/api/server.d.ts +6 -0
  22. package/dist/api/server.d.ts.map +1 -1
  23. package/dist/api/server.js +36 -1
  24. package/dist/api/server.js.map +1 -1
  25. package/dist/api/testing.js +1 -1
  26. package/dist/api/testing.js.map +1 -1
  27. package/dist/campaigns/plan.d.ts +8 -1
  28. package/dist/campaigns/plan.d.ts.map +1 -1
  29. package/dist/campaigns/plan.js +15 -3
  30. package/dist/campaigns/plan.js.map +1 -1
  31. package/dist/campaigns/routes.d.ts +8 -8
  32. package/dist/core/adapter.d.ts +29 -89
  33. package/dist/core/adapter.d.ts.map +1 -1
  34. package/dist/core/adapter.js +86 -609
  35. package/dist/core/adapter.js.map +1 -1
  36. package/dist/core/builtin-catalog.d.ts +24 -0
  37. package/dist/core/builtin-catalog.d.ts.map +1 -0
  38. package/dist/core/builtin-catalog.js +54 -0
  39. package/dist/core/builtin-catalog.js.map +1 -0
  40. package/dist/core/council-settings.d.ts +18 -0
  41. package/dist/core/council-settings.d.ts.map +1 -0
  42. package/dist/core/council-settings.js +37 -0
  43. package/dist/core/council-settings.js.map +1 -0
  44. package/dist/core/deliver-text.d.ts +1 -1
  45. package/dist/core/deliver-text.d.ts.map +1 -1
  46. package/dist/core/deliver-text.js +3 -2
  47. package/dist/core/deliver-text.js.map +1 -1
  48. package/dist/core/deliver.d.ts +0 -6
  49. package/dist/core/deliver.d.ts.map +1 -1
  50. package/dist/core/deliver.js +0 -6
  51. package/dist/core/deliver.js.map +1 -1
  52. package/dist/core/run-identity.d.ts +1 -1
  53. package/dist/core/run-identity.d.ts.map +1 -1
  54. package/dist/core/run-identity.js +7 -3
  55. package/dist/core/run-identity.js.map +1 -1
  56. package/dist/editors/csp.js +2 -2
  57. package/dist/editors/csp.js.map +1 -1
  58. package/dist/editors/pack-install.d.ts +35 -14
  59. package/dist/editors/pack-install.d.ts.map +1 -1
  60. package/dist/editors/pack-install.js +171 -24
  61. package/dist/editors/pack-install.js.map +1 -1
  62. package/dist/editors/registry.d.ts +151 -13
  63. package/dist/editors/registry.d.ts.map +1 -1
  64. package/dist/editors/registry.js +257 -20
  65. package/dist/editors/registry.js.map +1 -1
  66. package/dist/editors/routes.d.ts +10 -5
  67. package/dist/editors/routes.d.ts.map +1 -1
  68. package/dist/editors/routes.js +30 -20
  69. package/dist/editors/routes.js.map +1 -1
  70. package/dist/learn/routes.d.ts +42 -0
  71. package/dist/learn/routes.d.ts.map +1 -0
  72. package/dist/learn/routes.js +87 -0
  73. package/dist/learn/routes.js.map +1 -0
  74. package/dist/learn/schedule-store.d.ts +41 -0
  75. package/dist/learn/schedule-store.d.ts.map +1 -0
  76. package/dist/learn/schedule-store.js +137 -0
  77. package/dist/learn/schedule-store.js.map +1 -0
  78. package/dist/learn/scheduler.d.ts +71 -0
  79. package/dist/learn/scheduler.d.ts.map +1 -0
  80. package/dist/learn/scheduler.js +222 -0
  81. package/dist/learn/scheduler.js.map +1 -0
  82. package/dist/learn/topics.d.ts +14 -0
  83. package/dist/learn/topics.d.ts.map +1 -0
  84. package/dist/learn/topics.js +95 -0
  85. package/dist/learn/topics.js.map +1 -0
  86. package/dist/projects/graph.d.ts +14 -0
  87. package/dist/projects/graph.d.ts.map +1 -1
  88. package/dist/projects/graph.js +41 -2
  89. package/dist/projects/graph.js.map +1 -1
  90. package/dist/projects/routes.d.ts +2 -2
  91. package/dist/projects/state-home-registry.d.ts.map +1 -1
  92. package/dist/projects/state-home-registry.js +2 -0
  93. package/dist/projects/state-home-registry.js.map +1 -1
  94. package/dist/qe/acceptance.d.ts +5 -0
  95. package/dist/qe/acceptance.d.ts.map +1 -1
  96. package/dist/qe/acceptance.js +4 -2
  97. package/dist/qe/acceptance.js.map +1 -1
  98. package/dist/qe/author-workflow.d.ts +6 -83
  99. package/dist/qe/author-workflow.d.ts.map +1 -1
  100. package/dist/qe/author-workflow.js +6 -300
  101. package/dist/qe/author-workflow.js.map +1 -1
  102. package/dist/qe/ledger.d.ts +20 -0
  103. package/dist/qe/ledger.d.ts.map +1 -1
  104. package/dist/qe/ledger.js +28 -2
  105. package/dist/qe/ledger.js.map +1 -1
  106. package/dist/skills/core-closure.d.ts +3 -5
  107. package/dist/skills/core-closure.d.ts.map +1 -1
  108. package/dist/skills/core-closure.js +3 -5
  109. package/dist/skills/core-closure.js.map +1 -1
  110. package/dist/standing-orders/routes.d.ts +4 -4
  111. package/dist/standing-orders/store.d.ts +2 -2
  112. package/dist/studio/assets/index-C0ZMi_8d.js +583 -0
  113. package/dist/studio/assets/index-DYLo25MW.css +32 -0
  114. package/dist/studio/editors/wicked-page/editor.json +1 -1
  115. package/dist/studio/editors/wicked-page/index.html +1 -1
  116. package/dist/studio/index.html +2 -2
  117. package/dist/studio/testid-inventory.json +566 -36
  118. package/endpoint-manifest.json +59 -2
  119. package/package.json +4 -4
  120. package/dist/studio/assets/index-BGfFmWw4.css +0 -32
  121. package/dist/studio/assets/index-BMRUMU4X.js +0 -567
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/editors/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/editors/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * `/api/v1/learn/schedules` (DES-learn-workflow §5.2): read, save, delete and run-now a learned
3
+ * topic's refresh schedule. Writes are a person's (the watch routes' human-operator predicate): a
4
+ * worker or system actor may read but never schedule spend.
5
+ */
6
+ import type { FastifyInstance } from 'fastify';
7
+ import { z } from 'zod';
8
+ import type { CoreAdapter } from '../core/adapter.js';
9
+ import type { AuditLog } from '../api/audit.js';
10
+ import { type LearnScheduleStore } from './schedule-store.js';
11
+ export declare const LearnSchedulePutSchema: z.ZodObject<{
12
+ repoRef: z.ZodString;
13
+ slug: z.ZodString;
14
+ topic: z.ZodString;
15
+ everyHours: z.ZodNumber;
16
+ enabled: z.ZodOptional<z.ZodBoolean>;
17
+ projectId: z.ZodOptional<z.ZodString>;
18
+ }, "strict", z.ZodTypeAny, {
19
+ repoRef: string;
20
+ slug: string;
21
+ topic: string;
22
+ everyHours: number;
23
+ projectId?: string | undefined;
24
+ enabled?: boolean | undefined;
25
+ }, {
26
+ repoRef: string;
27
+ slug: string;
28
+ topic: string;
29
+ everyHours: number;
30
+ projectId?: string | undefined;
31
+ enabled?: boolean | undefined;
32
+ }>;
33
+ export interface LearnRouteDeps {
34
+ store: LearnScheduleStore;
35
+ adapter: Pick<CoreAdapter, 'listRepos'>;
36
+ /** Days without re-verification after which an UNSCHEDULED topic's active claim counts as stale. */
37
+ defaultStaleDays?: number;
38
+ audit: AuditLog;
39
+ now?: () => Date;
40
+ }
41
+ export declare function registerLearnRoutes(app: FastifyInstance, deps: LearnRouteDeps): void;
42
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/learn/routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAA4D,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAIxH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EASxB,CAAC;AAEZ,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACxC,oGAAoG;IACpG,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAMD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CA6EpF"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * `/api/v1/learn/schedules` (DES-learn-workflow §5.2): read, save, delete and run-now a learned
3
+ * topic's refresh schedule. Writes are a person's (the watch routes' human-operator predicate): a
4
+ * worker or system actor may read but never schedule spend.
5
+ */
6
+ import { z } from 'zod';
7
+ import { API_PREFIX } from '../api/api-prefix.js';
8
+ import { LOCAL_ACTOR } from '../api/auth.js';
9
+ import { isHumanOperator } from '../api/watch-routes.js';
10
+ import { readTopics } from './topics.js';
11
+ import { LEARN_SLUG, MAX_EVERY_HOURS, MIN_EVERY_HOURS, scheduleId } from './schedule-store.js';
12
+ const V = API_PREFIX;
13
+ export const LearnSchedulePutSchema = z
14
+ .object({
15
+ repoRef: z.string().min(1).max(256),
16
+ slug: z.string().regex(LEARN_SLUG, 'slug is kebab-case, at most 64 characters'),
17
+ topic: z.string().trim().min(1).max(200),
18
+ everyHours: z.number().int().min(MIN_EVERY_HOURS).max(MAX_EVERY_HOURS),
19
+ enabled: z.boolean().optional(),
20
+ projectId: z.string().min(1).max(128).optional(),
21
+ })
22
+ .strict();
23
+ function bad(reply, error) {
24
+ return reply.code(400).send({ error });
25
+ }
26
+ export function registerLearnRoutes(app, deps) {
27
+ const actorOf = (req) => req.actor ?? LOCAL_ACTOR;
28
+ const now = () => deps.now?.() ?? new Date();
29
+ const refuse = (reply) => reply.code(403).send({ error: 'Only a person can change a learn schedule (a worker or system actor cannot)' });
30
+ app.get(`${V}/learn/schedules`, { config: { manifest: { responseType: 'LearnSchedulesResponse', statusCodes: [200] } } }, async () => ({ schedules: deps.store.list() }));
31
+ // The learned topics of one registered repository, read from its checkout. A topic on a schedule
32
+ // goes stale after two of its intervals without re-verification; an unscheduled one after 60 days.
33
+ app.get(`${V}/learn/topics`, { config: { manifest: { responseType: 'LearnTopicsResponse', statusCodes: [200, 400, 404] } } }, async (req, reply) => {
34
+ const { repoRef } = req.query;
35
+ if (typeof repoRef !== 'string' || repoRef === '')
36
+ return bad(reply, 'repoRef is required');
37
+ const repo = (await deps.adapter.listRepos()).find((r) => r.id === repoRef);
38
+ if (repo === undefined)
39
+ return reply.code(404).send({ error: `no registered repository ${repoRef}` });
40
+ const schedules = deps.store.list().filter((s) => s.repoRef === repoRef);
41
+ const staleDays = (slug) => {
42
+ const s = schedules.find((x) => x.slug === slug);
43
+ return s !== undefined ? (2 * s.everyHours) / 24 : (deps.defaultStaleDays ?? 60);
44
+ };
45
+ return { repoRef, topics: await readTopics(repo.root_path, staleDays, now()) };
46
+ });
47
+ app.put(`${V}/learn/schedules/:id`, { config: { manifest: { requestType: 'LearnSchedulePutBody', responseType: 'LearnSchedule', statusCodes: [200, 400, 403, 404] } } }, async (req, reply) => {
48
+ const actor = actorOf(req);
49
+ if (!isHumanOperator(actor))
50
+ return refuse(reply);
51
+ const parsed = LearnSchedulePutSchema.safeParse(req.body);
52
+ if (!parsed.success)
53
+ return bad(reply, parsed.error.issues.map((i) => `${i.path.join('.') || 'body'}: ${i.message}`).join('; '));
54
+ const { id } = req.params;
55
+ const body = parsed.data;
56
+ if (id !== scheduleId(body.repoRef, body.slug))
57
+ return bad(reply, 'the id must be <repoRef>:<slug>');
58
+ if (!(await deps.adapter.listRepos()).some((r) => r.id === body.repoRef)) {
59
+ return reply.code(404).send({ error: `no registered repository ${body.repoRef}` });
60
+ }
61
+ const row = deps.store.put(body, now());
62
+ deps.audit.record('learn.schedule.saved', actor, { detail: { id, everyHours: row.everyHours, enabled: row.enabled } });
63
+ return row;
64
+ });
65
+ app.delete(`${V}/learn/schedules/:id`, { config: { manifest: { responseType: '{ deleted: true; id: string }', statusCodes: [200, 403, 404] } } }, async (req, reply) => {
66
+ const actor = actorOf(req);
67
+ if (!isHumanOperator(actor))
68
+ return refuse(reply);
69
+ const { id } = req.params;
70
+ if (!deps.store.delete(id))
71
+ return reply.code(404).send({ error: `no learn schedule ${id}` });
72
+ deps.audit.record('learn.schedule.deleted', actor, { detail: { id } });
73
+ return { deleted: true, id };
74
+ });
75
+ app.post(`${V}/learn/schedules/:id/run-now`, { config: { manifest: { responseType: 'LearnSchedule', statusCodes: [200, 403, 404] } } }, async (req, reply) => {
76
+ const actor = actorOf(req);
77
+ if (!isHumanOperator(actor))
78
+ return refuse(reply);
79
+ const { id } = req.params;
80
+ const row = deps.store.update(id, { nextDueAt: now().toISOString() }, now());
81
+ if (row === undefined)
82
+ return reply.code(404).send({ error: `no learn schedule ${id}` });
83
+ deps.audit.record('learn.schedule.run_now', actor, { detail: { id } });
84
+ return row;
85
+ });
86
+ }
87
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/learn/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The learn schedule (DES-learn-workflow §5): a durable record per learned topic saying how often
3
+ * the daemon re-runs the `learn` workflow on it. Crew is the single source of truth for a
4
+ * schedule; the topic's files in the repository do not repeat it.
5
+ *
6
+ * Same storage posture as `projects/settings.ts`: a small JSON map in the daemon's state home
7
+ * (`learn-schedules.json`, following `--db`; `WICKED_CREW_LEARN_SCHEDULES` overrides), written
8
+ * atomically (tmp + rename), read tolerantly per row (a malformed row is dropped, never the map).
9
+ */
10
+ import type { LearnSchedule, LearnScheduleOutcome } from 'wicked-crew-api-types';
11
+ export type { LearnSchedule, LearnScheduleOutcome };
12
+ export declare const LEARN_SLUG: RegExp;
13
+ export declare const MIN_EVERY_HOURS = 24;
14
+ export declare const MAX_EVERY_HOURS = 2160;
15
+ export declare function scheduleId(repoRef: string, slug: string): string;
16
+ export declare function defaultSchedulesPath(env?: NodeJS.ProcessEnv): string;
17
+ /** What a caller asks to save (`PUT /learn/schedules/:id`). */
18
+ export interface LearnScheduleInput {
19
+ repoRef: string;
20
+ slug: string;
21
+ topic: string;
22
+ everyHours: number;
23
+ enabled?: boolean | undefined;
24
+ projectId?: string | undefined;
25
+ }
26
+ export declare class LearnScheduleStore {
27
+ private readonly path;
28
+ private readonly rows;
29
+ constructor(path?: string);
30
+ list(): LearnSchedule[];
31
+ get(id: string): LearnSchedule | undefined;
32
+ /** Create or update. A new row is first due one interval from now; an update keeps its run
33
+ * history and moves `nextDueAt` only when the interval changed. */
34
+ put(input: LearnScheduleInput, now: Date): LearnSchedule;
35
+ /** Merge a patch into an existing row (the scheduler's bookkeeping). `undefined` when unknown. */
36
+ update(id: string, patch: Partial<Omit<LearnSchedule, 'id' | 'repoRef' | 'slug'>>, now: Date): LearnSchedule | undefined;
37
+ delete(id: string): boolean;
38
+ private persist;
39
+ }
40
+ export declare const HOURS = 3600000;
41
+ //# sourceMappingURL=schedule-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-store.d.ts","sourceRoot":"","sources":["../../src/learn/schedule-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGjF,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAEpD,eAAO,MAAM,UAAU,QAA2C,CAAC;AACnE,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,eAAe,OAAO,CAAC;AAIpC,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAEjF;AAmCD,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoC;gBAE7C,IAAI,CAAC,EAAE,MAAM;IAazB,IAAI,IAAI,aAAa,EAAE;IAIvB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAK1C;wEACoE;IACpE,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,IAAI,GAAG,aAAa;IA4BxD,kGAAkG;IAClG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,aAAa,GAAG,SAAS;IASxH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAM3B,OAAO,CAAC,OAAO;CAMhB;AAED,eAAO,MAAM,KAAK,UAAU,CAAC"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * The learn schedule (DES-learn-workflow §5): a durable record per learned topic saying how often
3
+ * the daemon re-runs the `learn` workflow on it. Crew is the single source of truth for a
4
+ * schedule; the topic's files in the repository do not repeat it.
5
+ *
6
+ * Same storage posture as `projects/settings.ts`: a small JSON map in the daemon's state home
7
+ * (`learn-schedules.json`, following `--db`; `WICKED_CREW_LEARN_SCHEDULES` overrides), written
8
+ * atomically (tmp + rename), read tolerantly per row (a malformed row is dropped, never the map).
9
+ */
10
+ import { mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
11
+ import { dirname, join } from 'node:path';
12
+ import { crewStateHome } from '../projects/state-home.js';
13
+ export const LEARN_SLUG = /^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$/;
14
+ export const MIN_EVERY_HOURS = 24;
15
+ export const MAX_EVERY_HOURS = 2160;
16
+ const HOUR_MS = 3_600_000;
17
+ const OUTCOMES = new Set(['launched', 'refused', 'completed', 'failed', 'cancelled']);
18
+ export function scheduleId(repoRef, slug) {
19
+ return `${repoRef}:${slug}`;
20
+ }
21
+ export function defaultSchedulesPath(env = process.env) {
22
+ return env['WICKED_CREW_LEARN_SCHEDULES'] ?? join(crewStateHome(), 'learn-schedules.json');
23
+ }
24
+ const str = (v) => typeof v === 'string';
25
+ const strOrNull = (v) => v === null || typeof v === 'string';
26
+ /** A row as read from disk, or `null` when it is malformed. */
27
+ function parseRow(id, raw) {
28
+ if (typeof raw !== 'object' || raw === null)
29
+ return null;
30
+ const r = raw;
31
+ if (!str(r['repoRef']) || !str(r['slug']) || !LEARN_SLUG.test(r['slug']) || !str(r['topic']))
32
+ return null;
33
+ if (id !== scheduleId(r['repoRef'], r['slug']))
34
+ return null;
35
+ const every = r['everyHours'];
36
+ if (typeof every !== 'number' || !Number.isInteger(every) || every < MIN_EVERY_HOURS || every > MAX_EVERY_HOURS)
37
+ return null;
38
+ if (typeof r['enabled'] !== 'boolean' || !str(r['nextDueAt']) || Number.isNaN(Date.parse(r['nextDueAt'])))
39
+ return null;
40
+ const outcome = r['lastOutcome'];
41
+ return {
42
+ id,
43
+ repoRef: r['repoRef'],
44
+ slug: r['slug'],
45
+ topic: r['topic'],
46
+ ...(str(r['projectId']) ? { projectId: r['projectId'] } : {}),
47
+ everyHours: every,
48
+ enabled: r['enabled'],
49
+ nextDueAt: r['nextDueAt'],
50
+ lastRunId: strOrNull(r['lastRunId']) ? r['lastRunId'] : null,
51
+ lastRunAt: strOrNull(r['lastRunAt']) ? r['lastRunAt'] : null,
52
+ lastOutcome: str(outcome) && OUTCOMES.has(outcome) ? outcome : null,
53
+ failures: typeof r['failures'] === 'number' && r['failures'] >= 0 ? Math.floor(r['failures']) : 0,
54
+ lastError: strOrNull(r['lastError']) ? r['lastError'] : null,
55
+ indexedTree: strOrNull(r['indexedTree']) ? r['indexedTree'] : null,
56
+ createdAt: str(r['createdAt']) ? r['createdAt'] : r['nextDueAt'],
57
+ updatedAt: str(r['updatedAt']) ? r['updatedAt'] : r['nextDueAt'],
58
+ };
59
+ }
60
+ export class LearnScheduleStore {
61
+ path;
62
+ rows = new Map();
63
+ constructor(path) {
64
+ this.path = path ?? defaultSchedulesPath();
65
+ try {
66
+ const parsed = JSON.parse(readFileSync(this.path, 'utf8'));
67
+ for (const [id, raw] of Object.entries(parsed?.schedules ?? {})) {
68
+ const row = parseRow(id, raw);
69
+ if (row !== null)
70
+ this.rows.set(id, row);
71
+ }
72
+ }
73
+ catch {
74
+ // Missing or malformed: start empty (no schedule fires), never fail the boot.
75
+ }
76
+ }
77
+ list() {
78
+ return [...this.rows.values()].sort((a, b) => a.nextDueAt.localeCompare(b.nextDueAt) || a.id.localeCompare(b.id));
79
+ }
80
+ get(id) {
81
+ const row = this.rows.get(id);
82
+ return row === undefined ? undefined : { ...row };
83
+ }
84
+ /** Create or update. A new row is first due one interval from now; an update keeps its run
85
+ * history and moves `nextDueAt` only when the interval changed. */
86
+ put(input, now) {
87
+ const id = scheduleId(input.repoRef, input.slug);
88
+ const prev = this.rows.get(id);
89
+ const iso = now.toISOString();
90
+ const due = new Date(now.getTime() + input.everyHours * HOUR_MS).toISOString();
91
+ const row = {
92
+ id,
93
+ repoRef: input.repoRef,
94
+ slug: input.slug,
95
+ topic: input.topic,
96
+ ...(input.projectId !== undefined ? { projectId: input.projectId } : {}),
97
+ everyHours: input.everyHours,
98
+ enabled: input.enabled ?? prev?.enabled ?? true,
99
+ nextDueAt: prev === undefined || prev.everyHours !== input.everyHours ? due : prev.nextDueAt,
100
+ lastRunId: prev?.lastRunId ?? null,
101
+ lastRunAt: prev?.lastRunAt ?? null,
102
+ lastOutcome: prev?.lastOutcome ?? null,
103
+ failures: prev?.failures ?? 0,
104
+ lastError: prev?.lastError ?? null,
105
+ indexedTree: prev?.indexedTree ?? null,
106
+ createdAt: prev?.createdAt ?? iso,
107
+ updatedAt: iso,
108
+ };
109
+ this.rows.set(id, row);
110
+ this.persist();
111
+ return { ...row };
112
+ }
113
+ /** Merge a patch into an existing row (the scheduler's bookkeeping). `undefined` when unknown. */
114
+ update(id, patch, now) {
115
+ const prev = this.rows.get(id);
116
+ if (prev === undefined)
117
+ return undefined;
118
+ const row = { ...prev, ...patch, updatedAt: now.toISOString() };
119
+ this.rows.set(id, row);
120
+ this.persist();
121
+ return { ...row };
122
+ }
123
+ delete(id) {
124
+ const had = this.rows.delete(id);
125
+ if (had)
126
+ this.persist();
127
+ return had;
128
+ }
129
+ persist() {
130
+ mkdirSync(dirname(this.path), { recursive: true });
131
+ const tmp = `${this.path}.tmp-${process.pid}`;
132
+ writeFileSync(tmp, JSON.stringify({ schedules: Object.fromEntries(this.rows) }, null, 2), 'utf8');
133
+ renameSync(tmp, this.path);
134
+ }
135
+ }
136
+ export const HOURS = HOUR_MS;
137
+ //# sourceMappingURL=schedule-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-store.js","sourceRoot":"","sources":["../../src/learn/schedule-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * The learn schedule's tick (DES-learn-workflow §5.3). Once a minute:
3
+ *
4
+ * 1. RECONCILE — a schedule's last run that reached a terminal status records its outcome.
5
+ * 2. INDEX — a topic whose MERGED knowledge changed (`git fetch origin <default>`, then
6
+ * `git rev-parse origin/<default>:.wicked/knowledge/<slug>`; the checkout's working copy is never read)
7
+ * moved) is re-indexed into the estate knowledge store by garden's `scripts/learn/index.py`,
8
+ * spawned OUTSIDE any run (its env carries no run markers, so the estate opens writable), one
9
+ * spawn per sweep. Indexing reads the registered checkout, never an open pull request.
10
+ * 3. LAUNCH — at most ONE due schedule launches the `learn` workflow, and only while no schedule's
11
+ * run is still open and no run on the daemon is executing (one governed run at a time). The
12
+ * launch delivers a pull request behind the engine's human deliver gate; nothing auto-merges.
13
+ * A refused launch backs off exponentially (capped at a day); missed intervals coalesce.
14
+ *
15
+ * Never throws; a slow sweep never stacks (`sweeping`).
16
+ */
17
+ import type { CoreAdapter } from '../core/adapter.js';
18
+ import type { Actor, CoreEvent } from '../core/types.js';
19
+ import type { AuditLog } from '../api/audit.js';
20
+ import { type RunTimingIndex } from '../api/run-timing-index.js';
21
+ import { type LearnSchedule, type LearnScheduleStore } from './schedule-store.js';
22
+ export declare const LEARN_WORKFLOW = "learn";
23
+ export declare const LEARN_SCHEDULE_ACTOR: Actor;
24
+ export declare const DEFAULT_LEARN_SWEEP_MS = 60000;
25
+ /** How long a launched run the daemon no longer lists keeps the schedule's slot (48 h). */
26
+ export declare const STALE_LAUNCH_MS: number;
27
+ /** The env a governed unit carries; the index spawn drops every one so estate opens writable. */
28
+ export declare const RUN_MARKER_ENV: string[];
29
+ export interface ExecResult {
30
+ code: number;
31
+ stdout: string;
32
+ stderr: string;
33
+ }
34
+ export type Exec = (cmd: string, args: string[], opts: {
35
+ cwd?: string;
36
+ env?: NodeJS.ProcessEnv;
37
+ timeoutMs: number;
38
+ }) => Promise<ExecResult>;
39
+ export declare const defaultExec: Exec;
40
+ export interface LearnSchedulerDeps {
41
+ store: LearnScheduleStore;
42
+ adapter: Pick<CoreAdapter, 'listRepos' | 'sessionsDetail' | 'seatsForWorkflow' | 'launchRun'>;
43
+ audit: AuditLog;
44
+ runTimingIndex: RunTimingIndex;
45
+ fileRun: (runId: string, projectId: string) => void;
46
+ broadcast: (frame: CoreEvent) => void;
47
+ log: (msg: string) => void;
48
+ now?: () => Date;
49
+ exec?: Exec;
50
+ env?: NodeJS.ProcessEnv;
51
+ }
52
+ /** The garden launcher: `$WICKED_GARDEN_ROOT/scripts/wicked-garden` when set, else `wicked-garden` on PATH. */
53
+ export declare function gardenLauncher(env: NodeJS.ProcessEnv): string;
54
+ /** `env` without the governed-run markers. */
55
+ export declare function unmarkedEnv(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
56
+ export declare function refreshProblem(row: LearnSchedule): string;
57
+ export declare class LearnScheduler {
58
+ private readonly deps;
59
+ private timer;
60
+ private sweeping;
61
+ constructor(deps: LearnSchedulerDeps);
62
+ start(intervalMs?: number): void;
63
+ stop(): void;
64
+ private now;
65
+ /** One sweep. Never throws. */
66
+ sweep(): Promise<void>;
67
+ private reconcile;
68
+ private indexOne;
69
+ private launchOne;
70
+ }
71
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/learn/scheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzF,eAAO,MAAM,cAAc,UAAU,CAAC;AACtC,eAAO,MAAM,oBAAoB,EAAE,KAAmE,CAAC;AACvG,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C,2FAA2F;AAC3F,eAAO,MAAM,eAAe,QAAa,CAAC;AAI1C,iGAAiG;AACjG,eAAO,MAAM,cAAc,UAA4G,CAAC;AAExI,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE5I,eAAO,MAAM,WAAW,EAAE,IAOtB,CAAC;AAEL,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,WAAW,CAAC,CAAC;IAC9F,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACtC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB;AAED,+GAA+G;AAC/G,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAG7D;AAED,8CAA8C;AAC9C,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAIrE;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAMzD;AAED,qBAAa,cAAc;IAIb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAS;gBAEI,IAAI,EAAE,kBAAkB;IAErD,KAAK,CAAC,UAAU,SAAyB,GAAG,IAAI;IAMhD,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,GAAG;IAIX,+BAA+B;IACzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5B,OAAO,CAAC,SAAS;YAUH,QAAQ;YAkCR,SAAS;CA6ExB"}