@pikku/addon-console 0.12.47 → 0.12.49

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 (128) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/dist/.pikku/addon/agent/index.d.ts +1 -1
  3. package/dist/.pikku/addon/agent/index.js +1 -1
  4. package/dist/.pikku/addon/agent/pikku-agent-map.gen.d.ts +1 -1
  5. package/dist/.pikku/addon/agent/pikku-agent-types.gen.d.ts +1 -1
  6. package/dist/.pikku/addon/agent/pikku-model-aliases.gen.js +1 -1
  7. package/dist/.pikku/addon/agent/pikku-scorer-names.gen.d.ts +1 -1
  8. package/dist/.pikku/addon/auth/auth.types.d.ts +1 -1
  9. package/dist/.pikku/addon/auth/auth.types.js +1 -1
  10. package/dist/.pikku/addon/auth/index.d.ts +1 -1
  11. package/dist/.pikku/addon/auth/index.js +1 -1
  12. package/dist/.pikku/addon/auth/pikku-auth-types.gen.d.ts +1 -1
  13. package/dist/.pikku/addon/auth/pikku-auth-types.gen.js +1 -1
  14. package/dist/.pikku/addon/channel/index.d.ts +1 -1
  15. package/dist/.pikku/addon/channel/index.js +1 -1
  16. package/dist/.pikku/addon/channel/pikku-channel-types.gen.d.ts +1 -1
  17. package/dist/.pikku/addon/channel/pikku-channel-types.gen.js +1 -1
  18. package/dist/.pikku/addon/error/index.d.ts +1 -1
  19. package/dist/.pikku/addon/error/index.js +1 -1
  20. package/dist/.pikku/addon/error/pikku-error-types.gen.d.ts +1 -1
  21. package/dist/.pikku/addon/error/pikku-error-types.gen.js +1 -1
  22. package/dist/.pikku/addon/function/index.d.ts +1 -1
  23. package/dist/.pikku/addon/function/index.js +1 -1
  24. package/dist/.pikku/addon/function/pikku-function-types.gen.d.ts +1 -1
  25. package/dist/.pikku/addon/function/pikku-function-types.gen.js +1 -1
  26. package/dist/.pikku/addon/function/pikku-functions-meta-verbose.gen.json +4 -4
  27. package/dist/.pikku/addon/function/pikku-functions-meta.gen.js +1 -1
  28. package/dist/.pikku/addon/function/pikku-functions-meta.gen.json +4 -4
  29. package/dist/.pikku/addon/function/pikku-functions.gen.js +1 -1
  30. package/dist/.pikku/addon/http/index.d.ts +1 -1
  31. package/dist/.pikku/addon/http/index.js +1 -1
  32. package/dist/.pikku/addon/http/pikku-http-types.gen.d.ts +1 -1
  33. package/dist/.pikku/addon/http/pikku-http-types.gen.js +1 -1
  34. package/dist/.pikku/addon/mcp/index.d.ts +1 -1
  35. package/dist/.pikku/addon/mcp/index.js +1 -1
  36. package/dist/.pikku/addon/mcp/pikku-mcp-types.gen.d.ts +1 -1
  37. package/dist/.pikku/addon/mcp/pikku-mcp-types.gen.js +1 -1
  38. package/dist/.pikku/addon/middleware/index.d.ts +1 -1
  39. package/dist/.pikku/addon/middleware/index.js +1 -1
  40. package/dist/.pikku/addon/middleware/pikku-middleware-types.gen.d.ts +2 -2
  41. package/dist/.pikku/addon/middleware/pikku-middleware-types.gen.d.ts.map +1 -1
  42. package/dist/.pikku/addon/middleware/pikku-middleware-types.gen.js +2 -2
  43. package/dist/.pikku/addon/middleware/pikku-middleware-types.gen.js.map +1 -1
  44. package/dist/.pikku/addon/permissions/pikku-permissions.gen.d.ts +1 -1
  45. package/dist/.pikku/addon/permissions/pikku-permissions.gen.js +1 -1
  46. package/dist/.pikku/addon/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  47. package/dist/.pikku/addon/pikku-bootstrap-scenarios.gen.js +1 -1
  48. package/dist/.pikku/addon/pikku-bootstrap.gen.d.ts +1 -1
  49. package/dist/.pikku/addon/pikku-bootstrap.gen.js +1 -1
  50. package/dist/.pikku/addon/pikku-package.gen.js +2 -2
  51. package/dist/.pikku/addon/pikku-package.gen.js.map +1 -1
  52. package/dist/.pikku/addon/pikku-services.gen.d.ts +2 -2
  53. package/dist/.pikku/addon/pikku-services.gen.d.ts.map +1 -1
  54. package/dist/.pikku/addon/pikku-services.gen.js +1 -1
  55. package/dist/.pikku/addon/pikku-services.gen.js.map +1 -1
  56. package/dist/.pikku/addon/rpc/pikku-rpc-wirings-map.gen.d.ts +1 -1
  57. package/dist/.pikku/addon/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +1 -1
  58. package/dist/.pikku/addon/rpc/pikku-rpc-wirings-map.remote.gen.d.ts +1 -1
  59. package/dist/.pikku/addon/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  60. package/dist/.pikku/addon/scenarios/index.d.ts +1 -1
  61. package/dist/.pikku/addon/scenarios/index.js +1 -1
  62. package/dist/.pikku/addon/scenarios/pikku-personas.gen.js +1 -1
  63. package/dist/.pikku/addon/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
  64. package/dist/.pikku/addon/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  65. package/dist/.pikku/addon/scenarios/pikku-scenario-types.gen.d.ts +3 -3
  66. package/dist/.pikku/addon/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
  67. package/dist/.pikku/addon/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  68. package/dist/.pikku/addon/scenarios/schemas/register.gen.d.ts +1 -1
  69. package/dist/.pikku/addon/scenarios/schemas/register.gen.js +1 -1
  70. package/dist/.pikku/addon/schemas/register.gen.js +1 -1
  71. package/dist/.pikku/addon/schemas/schemas/KnowledgeBundle.schema.json +1 -1
  72. package/dist/.pikku/addon/schemas/schemas/ScenarioRunRecord.schema.json +1 -1
  73. package/dist/.pikku/addon/scopes/index.d.ts +1 -1
  74. package/dist/.pikku/addon/scopes/index.js +1 -1
  75. package/dist/.pikku/addon/scopes/pikku-personas.gen.js +1 -1
  76. package/dist/.pikku/addon/scopes/pikku-roles.gen.d.ts +1 -1
  77. package/dist/.pikku/addon/scopes/pikku-scope-types.gen.d.ts +1 -1
  78. package/dist/.pikku/addon/scopes/pikku-scope-types.gen.js +1 -1
  79. package/dist/.pikku/addon/scopes/pikku-scopes.gen.d.ts +1 -1
  80. package/dist/.pikku/addon/secrets/index.d.ts +1 -1
  81. package/dist/.pikku/addon/secrets/index.js +1 -1
  82. package/dist/.pikku/addon/secrets/pikku-secret-types.gen.d.ts +1 -1
  83. package/dist/.pikku/addon/secrets/pikku-secret-types.gen.js +1 -1
  84. package/dist/.pikku/addon/secrets/pikku-secrets.gen.d.ts +1 -1
  85. package/dist/.pikku/addon/secrets/pikku-secrets.gen.js +1 -1
  86. package/dist/.pikku/addon/services/pikku-meta-service.gen.d.ts +1 -1
  87. package/dist/.pikku/addon/services/pikku-meta-service.gen.js +1 -1
  88. package/dist/.pikku/addon/setup/index.d.ts +1 -1
  89. package/dist/.pikku/addon/setup/index.js +1 -1
  90. package/dist/.pikku/addon/setup/pikku-addon-setup-types.gen.d.ts +1 -1
  91. package/dist/.pikku/addon/setup/pikku-addon-setup-types.gen.js +1 -1
  92. package/dist/.pikku/addon/setup/pikku-setup-types.gen.d.ts +1 -1
  93. package/dist/.pikku/addon/setup/pikku-setup-types.gen.js +1 -1
  94. package/dist/.pikku/addon/trigger/index.d.ts +1 -1
  95. package/dist/.pikku/addon/trigger/index.js +1 -1
  96. package/dist/.pikku/addon/trigger/pikku-trigger-types.gen.d.ts +1 -1
  97. package/dist/.pikku/addon/trigger/pikku-trigger-types.gen.js +1 -1
  98. package/dist/.pikku/addon/variables/index.d.ts +1 -1
  99. package/dist/.pikku/addon/variables/index.js +1 -1
  100. package/dist/.pikku/addon/variables/pikku-variable-types.gen.d.ts +1 -1
  101. package/dist/.pikku/addon/variables/pikku-variable-types.gen.js +1 -1
  102. package/dist/.pikku/addon/variables/pikku-variables.gen.d.ts +1 -1
  103. package/dist/.pikku/addon/variables/pikku-variables.gen.js +1 -1
  104. package/dist/.pikku/addon/workflow/index.d.ts +1 -1
  105. package/dist/.pikku/addon/workflow/index.js +1 -1
  106. package/dist/.pikku/addon/workflow/pikku-scenario-step-map.gen.d.ts +1 -1
  107. package/dist/.pikku/addon/workflow/pikku-workflow-map.gen.d.ts +1 -1
  108. package/dist/.pikku/addon/workflow/pikku-workflow-types.gen.d.ts +1 -1
  109. package/dist/.pikku/addon/workflow/pikku-workflow-types.gen.js +1 -1
  110. package/dist/.pikku/addon/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  111. package/dist/.pikku/addon/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
  112. package/dist/.pikku/addon/workflow/pikku-workflow-wirings.gen.js +1 -1
  113. package/dist/src/functions/get-knowledge.function.test.js +1 -0
  114. package/dist/src/functions/get-knowledge.function.test.js.map +1 -1
  115. package/dist/src/services/db-schema.service.d.ts.map +1 -1
  116. package/dist/src/services/db-schema.service.js +7 -7
  117. package/dist/src/services/db-schema.service.js.map +1 -1
  118. package/dist/src/services/db-schema.service.test.d.ts +2 -0
  119. package/dist/src/services/db-schema.service.test.d.ts.map +1 -0
  120. package/dist/src/services/db-schema.service.test.js +67 -0
  121. package/dist/src/services/db-schema.service.test.js.map +1 -0
  122. package/dist/src/services/knowledge.service.d.ts +113 -1
  123. package/dist/src/services/knowledge.service.d.ts.map +1 -1
  124. package/dist/src/services/knowledge.service.js +32 -2
  125. package/dist/src/services/knowledge.service.js.map +1 -1
  126. package/dist/src/services/knowledge.service.test.js +96 -0
  127. package/dist/src/services/knowledge.service.test.js.map +1 -1
  128. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"db-schema.service.js","sourceRoot":"","sources":["../../../src/services/db-schema.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db-schema.service.js","sourceRoot":"","sources":["../../../src/services/db-schema.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=db-schema.service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-schema.service.test.d.ts","sourceRoot":"","sources":["../../../src/services/db-schema.service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,67 @@
1
+ import { describe, test } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { DbSchemaService } from './db-schema.service.js';
4
+ const SCHEMA = {
5
+ tables: [
6
+ {
7
+ name: 'question',
8
+ columns: [
9
+ { name: 'body', type: 'TEXT', nullable: false, isPrimaryKey: false },
10
+ {
11
+ name: 'attendee_id',
12
+ type: 'TEXT',
13
+ nullable: false,
14
+ isPrimaryKey: false,
15
+ },
16
+ ],
17
+ },
18
+ ],
19
+ enums: [],
20
+ };
21
+ const makeMetaService = (annotations) => ({
22
+ readFile: async (path) => {
23
+ if (path === 'db/pikku-db-schema.gen.json')
24
+ return JSON.stringify(SCHEMA);
25
+ if (path === 'db/annotations.gen.json')
26
+ return JSON.stringify(annotations);
27
+ return null;
28
+ },
29
+ });
30
+ const classifications = async (annotations) => {
31
+ const service = new DbSchemaService(makeMetaService(annotations));
32
+ const schema = await service.getSchema();
33
+ return Object.fromEntries(schema.tables[0].columns.map((c) => [c.name, c.classification]));
34
+ };
35
+ describe('DbSchemaService.getSchema', () => {
36
+ test('reads the privacy level from `security`, as annotations.gen.json writes it', async () => {
37
+ // The sidecar is a verbatim dump of db/annotations.ts, so this is the shape
38
+ // a project actually has. Reading the wrong key here is invisible: every
39
+ // column silently falls back to `private` and the console looks like it is
40
+ // working.
41
+ assert.deepEqual(await classifications({
42
+ question: {
43
+ body: { security: 'public' },
44
+ attendee_id: { security: 'private', classification: 'hash' },
45
+ },
46
+ }), { body: 'public', attendee_id: 'private' });
47
+ });
48
+ test('still reads `visibility` from a sidecar an older CLI generated', async () => {
49
+ assert.deepEqual(await classifications({
50
+ question: {
51
+ body: { visibility: 'public' },
52
+ attendee_id: { visibility: 'pii', classification: 'hash' },
53
+ },
54
+ }), { body: 'public', attendee_id: 'pii' });
55
+ });
56
+ test('never reads the privacy level out of `classification`, which is the anonymize strategy', async () => {
57
+ // `classification: 'hash'` means "hash this when anonymizing", not a level.
58
+ // An unannotated column is `private` — the safe default, not the loud one.
59
+ assert.deepEqual(await classifications({
60
+ question: {
61
+ body: { classification: 'fake:name' },
62
+ attendee_id: {},
63
+ },
64
+ }), { body: 'private', attendee_id: 'private' });
65
+ });
66
+ });
67
+ //# sourceMappingURL=db-schema.service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-schema.service.test.js","sourceRoot":"","sources":["../../../src/services/db-schema.service.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,119 @@
1
- import { type KnowledgeFinding, type KnowledgeGraph } from '@pikku/knowledge';
1
+ import { type KnowledgeFinding, type KnowledgeGraph, type PlanChecklistItem } from '@pikku/knowledge';
2
+ /**
3
+ * The plan as it goes over the wire.
4
+ *
5
+ * Structurally the same as `Plan` in @pikku/knowledge, restated as plain interfaces
6
+ * because that one is inferred from a zod schema, and schema generation cannot walk
7
+ * an inferred type that deep — the whole bundle then names a schema nobody
8
+ * generated, and `getKnowledge` fails at runtime with `MissingSchemaError`.
9
+ *
10
+ * Nothing here is free to drift: `readPlan` hands back the zod type and it is
11
+ * assigned straight into this field, so a plan schema that grows a case these
12
+ * interfaces do not have stops compiling.
13
+ */
14
+ export type PlanSlot<T> = {
15
+ kind: 'built';
16
+ description: string;
17
+ items: T[];
18
+ } | {
19
+ kind: 'n/a';
20
+ description: string;
21
+ };
22
+ export interface PlanModelField {
23
+ name: string;
24
+ type: string;
25
+ classification: 'public' | 'internal' | 'personal' | 'sensitive';
26
+ }
27
+ export interface PlanModelRelationship {
28
+ column: string;
29
+ references: string;
30
+ onDelete: 'cascade' | 'restrict' | 'orphan';
31
+ provedBy?: string;
32
+ }
33
+ export interface PlanModelItem {
34
+ table: string;
35
+ description: string;
36
+ fields: PlanModelField[];
37
+ relationships: PlanModelRelationship[];
38
+ }
39
+ export interface PlanFunctionItem {
40
+ name: string;
41
+ description: string;
42
+ pass: number;
43
+ wire?: {
44
+ transport: string;
45
+ route?: string;
46
+ } | null;
47
+ scopes: string[];
48
+ permission: string | null;
49
+ }
50
+ export interface PlanUiItem {
51
+ route: string;
52
+ description: string;
53
+ pass: number;
54
+ app?: string;
55
+ scenarios: string[];
56
+ }
57
+ export interface PlanNamedItem {
58
+ name: string;
59
+ description: string;
60
+ }
61
+ export interface PlanRoleItem extends PlanNamedItem {
62
+ app?: string;
63
+ }
64
+ export interface PlanScenarioItem {
65
+ feature: string;
66
+ scenario: string;
67
+ fn?: string;
68
+ name?: string;
69
+ }
70
+ export interface PlanCovers {
71
+ note: string;
72
+ hash: string;
73
+ complete: boolean;
74
+ }
75
+ export interface WirePlan {
76
+ version: number;
77
+ milestone: string;
78
+ description: string;
79
+ covers: PlanCovers[];
80
+ model: PlanSlot<PlanModelItem>;
81
+ functions: PlanSlot<PlanFunctionItem>;
82
+ roles: PlanSlot<PlanRoleItem>;
83
+ scopes: PlanSlot<PlanNamedItem>;
84
+ ui: PlanSlot<PlanUiItem>;
85
+ scenarios: {
86
+ backend: PlanSlot<PlanScenarioItem>;
87
+ browser: PlanSlot<PlanScenarioItem>;
88
+ permission: PlanSlot<PlanScenarioItem>;
89
+ };
90
+ }
91
+ /**
92
+ * One milestone's technical plan, reconciled against the generated meta.
93
+ *
94
+ * The milestone note is the ask — a title and a Gherkin block. The plan beside it is
95
+ * the answer: the tables, functions, roles, screens and scenarios that were promised.
96
+ * The checklist rides along rather than being a second call, because every row is a
97
+ * set-membership test against the same meta read, and a checklist fetched separately
98
+ * could disagree with the plan it is drawn beside.
99
+ */
100
+ export interface KnowledgeMilestonePlan {
101
+ plan: WirePlan | null;
102
+ /**
103
+ * Why there is no plan, for the reader to be told instead of being shown an empty
104
+ * one. `readPlan` already separates "nobody wrote one" from "one is there and will
105
+ * not parse", and those want different words in front of a person.
106
+ */
107
+ unavailable: string | null;
108
+ checklist: PlanChecklistItem[];
109
+ complete: boolean;
110
+ }
2
111
  export interface KnowledgeBundle extends KnowledgeGraph {
3
112
  /** What `pikku knowledge validate` would report, so the console shows the same verdict. */
4
113
  findings: KnowledgeFinding[];
5
114
  ok: boolean;
115
+ /** Keyed by the milestone note's path, so a note document can find its own plan. */
116
+ plans: Record<string, KnowledgeMilestonePlan>;
6
117
  }
7
118
  /**
8
119
  * Reads the project's `knowledge/` notes off disk on every call.
@@ -17,5 +128,6 @@ export declare class KnowledgeService {
17
128
  private readonly outDir;
18
129
  constructor(projectRoot: string, outDir: string);
19
130
  getBundle(): Promise<KnowledgeBundle>;
131
+ private getPlans;
20
132
  }
21
133
  //# sourceMappingURL=knowledge.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.service.d.ts","sourceRoot":"","sources":["../../../src/services/knowledge.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAIpB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,2FAA2F;IAC3F,QAAQ,EAAE,gBAAgB,EAAE,CAAA;IAC5B,EAAE,EAAE,OAAO,CAAA;CACZ;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM;IAG3B,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;CAc5C"}
1
+ {"version":3,"file":"knowledge.service.d.ts","sourceRoot":"","sources":["../../../src/services/knowledge.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { buildKnowledgeGraph, readKnowledgeNotes, runKnowledgeValidate, } from '@pikku/knowledge';
1
+ import { buildKnowledgeGraph, functionsDirFor, planShortfall, readKnowledgeNotes, readMilestones, readPikkuMeta, readPlan, runKnowledgeValidate, } from '@pikku/knowledge';
2
2
  /**
3
3
  * Reads the project's `knowledge/` notes off disk on every call.
4
4
  *
@@ -20,7 +20,37 @@ export class KnowledgeService {
20
20
  const notes = await readKnowledgeNotes(this.projectRoot);
21
21
  const graph = buildKnowledgeGraph(notes);
22
22
  const { ok, findings } = await runKnowledgeValidate(this.projectRoot, this.outDir, notes);
23
- return { ...graph, ok, findings };
23
+ return { ...graph, ok, findings, plans: await this.getPlans() };
24
+ }
25
+ async getPlans() {
26
+ const milestones = await readMilestones(this.projectRoot);
27
+ if (milestones.length === 0)
28
+ return {};
29
+ // Read once for every milestone rather than per note: the meta is the whole
30
+ // project's, so re-reading it per plan would say the same thing several times
31
+ // over and let two milestones on one page disagree about what exists.
32
+ const meta = readPikkuMeta(functionsDirFor(this.projectRoot));
33
+ const plans = {};
34
+ for (const note of milestones) {
35
+ const read = readPlan(this.projectRoot, note.path);
36
+ if (!read.ok) {
37
+ plans[note.path] = {
38
+ plan: null,
39
+ unavailable: read.reason,
40
+ checklist: [],
41
+ complete: false,
42
+ };
43
+ continue;
44
+ }
45
+ const { items, missing } = planShortfall(read.plan, meta);
46
+ plans[note.path] = {
47
+ plan: read.plan,
48
+ unavailable: null,
49
+ checklist: items,
50
+ complete: missing.length === 0,
51
+ };
52
+ }
53
+ return plans;
24
54
  }
25
55
  }
26
56
  //# sourceMappingURL=knowledge.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.service.js","sourceRoot":"","sources":["../../../src/services/knowledge.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AAQzB;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YACmB,WAAmB,EACnB,MAAc;QADd,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ,KAAK,CAAC,SAAS;QACb,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,4BAA4B;QAC5B,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACxC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CACjD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,MAAM,EACX,KAAK,CACN,CAAA;QACD,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAA;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"knowledge.service.js","sourceRoot":"","sources":["../../../src/services/knowledge.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,QAAQ,EACR,oBAAoB,GACrB,MAAM,kBAAkB,CAAA;AA2HzB;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IAC3B,YACmB,WAAmB,EACnB,MAAc;QADd,gBAAW,GAAX,WAAW,CAAQ;QACnB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ,KAAK,CAAC,SAAS;QACb,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,4BAA4B;QAC5B,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxD,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACxC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,oBAAoB,CACjD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,MAAM,EACX,KAAK,CACN,CAAA;QACD,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAA;IACjE,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACtC,4EAA4E;QAC5E,8EAA8E;QAC9E,sEAAsE;QACtE,MAAM,IAAI,GAAG,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;QAC7D,MAAM,KAAK,GAA2C,EAAE,CAAA;QACxD,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAClD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBACjB,IAAI,EAAE,IAAI;oBACV,WAAW,EAAE,IAAI,CAAC,MAAM;oBACxB,SAAS,EAAE,EAAE;oBACb,QAAQ,EAAE,KAAK;iBAChB,CAAA;gBACD,SAAQ;YACV,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACzD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC;aAC/B,CAAA;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}
@@ -56,4 +56,100 @@ describe('KnowledgeService', () => {
56
56
  assert.equal((await instance.getBundle()).stats.notes, 2);
57
57
  });
58
58
  });
59
+ describe('KnowledgeService milestone plans', () => {
60
+ const MILESTONE = 'knowledge/milestones/01-the-daily-entry.md';
61
+ const NOTE = `---
62
+ type: milestone
63
+ entities: entry
64
+ ---
65
+ The daily entry.
66
+
67
+ \`\`\`gherkin
68
+ Given 'owner' has today free
69
+ When 'owner' writes an entry
70
+ Then 'owner' reads it back
71
+ \`\`\`
72
+ `;
73
+ const plan = {
74
+ version: 1,
75
+ deferrals: [],
76
+ milestone: MILESTONE,
77
+ description: 'One person writes one entry a day.',
78
+ covers: [
79
+ { note: 'entities/entry.md', hash: 'a1b2c3d4e5f6', complete: true },
80
+ ],
81
+ model: { kind: 'n/a', description: 'No tables yet.' },
82
+ functions: {
83
+ kind: 'built',
84
+ description: 'Write.',
85
+ items: [
86
+ {
87
+ name: 'createEntry',
88
+ description: "Creates today's entry.",
89
+ pass: 1,
90
+ wire: { transport: 'http', route: 'POST /entry' },
91
+ scopes: [],
92
+ permission: 'Only the signed-in person writes their own entry',
93
+ },
94
+ ],
95
+ },
96
+ roles: { kind: 'n/a', description: 'One person.' },
97
+ scopes: { kind: 'n/a', description: 'No third-party access yet.' },
98
+ ui: { kind: 'n/a', description: 'No screen yet.' },
99
+ scenarios: {
100
+ backend: { kind: 'n/a', description: 'None yet.' },
101
+ browser: { kind: 'n/a', description: 'None yet.' },
102
+ permission: { kind: 'n/a', description: 'None yet.' },
103
+ },
104
+ };
105
+ test('a milestone with a plan carries it, reconciled against the meta', async () => {
106
+ const root = await project({
107
+ [MILESTONE]: NOTE,
108
+ 'knowledge/milestones/01-the-daily-entry.plan.json': JSON.stringify(plan),
109
+ '.pikku/function/pikku-functions-meta.gen.json': JSON.stringify({
110
+ createEntry: { auth: true },
111
+ }),
112
+ '.pikku/http/pikku-http-wirings-meta.gen.json': JSON.stringify({
113
+ POST: { '/entry': {} },
114
+ }),
115
+ });
116
+ const bundle = await service(root).getBundle();
117
+ const milestone = bundle.plans[MILESTONE];
118
+ assert.ok(milestone);
119
+ assert.equal(milestone.unavailable, null);
120
+ assert.equal(milestone.plan?.description, 'One person writes one entry a day.');
121
+ assert.equal(milestone.complete, true);
122
+ assert.deepEqual(milestone.checklist.map((item) => [item.id, item.done]), [
123
+ ['function:createEntry', true],
124
+ ['wire:POST /entry', true],
125
+ ]);
126
+ });
127
+ test('a plan the meta cannot account for reads as incomplete rather than as absent', async () => {
128
+ const root = await project({
129
+ [MILESTONE]: NOTE,
130
+ 'knowledge/milestones/01-the-daily-entry.plan.json': JSON.stringify(plan),
131
+ });
132
+ const bundle = await service(root).getBundle();
133
+ const milestone = bundle.plans[MILESTONE];
134
+ assert.equal(milestone?.complete, false);
135
+ assert.deepEqual(milestone?.checklist.map((item) => item.done), [false, false]);
136
+ });
137
+ test('a milestone nobody planned says so, rather than going missing from the bundle', async () => {
138
+ // A note with no plan beside it is the state the console most needs to show —
139
+ // dropping the key would render exactly like a milestone that was never written.
140
+ const root = await project({ [MILESTONE]: NOTE });
141
+ const bundle = await service(root).getBundle();
142
+ const milestone = bundle.plans[MILESTONE];
143
+ assert.ok(milestone);
144
+ assert.equal(milestone.plan, null);
145
+ assert.match(milestone.unavailable ?? '', /No plan at/);
146
+ assert.deepEqual(milestone.checklist, []);
147
+ });
148
+ test('a base with no milestones carries no plans', async () => {
149
+ const root = await project({
150
+ 'knowledge/decisions/why.md': '---\ntype: decision\n---\nBecause.',
151
+ });
152
+ assert.deepEqual((await service(root).getBundle()).plans, {});
153
+ });
154
+ });
59
155
  //# sourceMappingURL=knowledge.service.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge.service.test.js","sourceRoot":"","sources":["../../../src/services/knowledge.service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge.service.test.js","sourceRoot":"","sources":["../../../src/services/knowledge.service.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pikku/addon-console",
3
- "version": "0.12.47",
3
+ "version": "0.12.49",
4
4
  "description": "Console addon for Pikku — functions powering the Pikku Console UI",
5
5
  "type": "module",
6
6
  "imports": {
@@ -46,14 +46,14 @@
46
46
  },
47
47
  "devDependencies": {
48
48
  "@pikku/better-auth": "^0.12.26",
49
- "@pikku/cli": "^0.12.120",
49
+ "@pikku/cli": "^0.12.132",
50
50
  "@pikku/core": "^0.12.90",
51
51
  "oauth2-mock-server": "^9.1.0",
52
52
  "typescript": "^6.0.3"
53
53
  },
54
54
  "dependencies": {
55
55
  "@pikku/code-edit": "^0.12.1",
56
- "@pikku/knowledge": "^0.12.7",
56
+ "@pikku/knowledge": "^0.12.9",
57
57
  "json-schema": "^0.4.0",
58
58
  "open": "^11.0.1"
59
59
  },