@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,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/scenarios` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/scenarios` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /** Personas declared with definePersonas() */
5
5
  import { createHttpPersonas } from '@pikku/core/persona';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/state';
5
5
  import '../function/pikku-functions-meta.gen.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export {};
5
5
  //# sourceMappingURL=pikku-scenario-functions.gen.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import type { PikkuScenarioWire, ScenarioStepOptions } from '@pikku/core/scenario';
5
5
  import type { PikkuWorkflowWire } from '@pikku/core/workflow';
@@ -194,14 +194,14 @@ type PikkuScenarioStepConfigWithSchema<InputSchema extends StandardSchemaV1 | un
194
194
  /**
195
195
  * What this step does, for the console and for whoever reads the source. It
196
196
  * is also the fallback prose when no `template` is declared, in which case a
197
- * reporter renders "Given the shopper buys an apple". Defaults to the call
197
+ * reporter renders "Given shopper buys an apple". Defaults to the call
198
198
  * site's step name.
199
199
  */
200
200
  description?: string;
201
201
  /**
202
202
  * The prose a reporter renders for this step, with `{placeholders}` filled
203
203
  * from the input the step was called with — `'sees {packageName}'` reports as
204
- * "Then the admin sees @pikku/addon-todos". Every input field should appear,
204
+ * "Then admin sees @pikku/addon-todos". Every input field should appear,
205
205
  * so the report names the values under test rather than repeating one
206
206
  * sentence per call site.
207
207
  */
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/state';
5
5
  import '../workflow/pikku-workflow-wirings-meta.gen.js';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export {};
5
5
  //# sourceMappingURL=pikku-scenario-wirings.gen.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export declare const empty: null;
5
5
  //# sourceMappingURL=register.gen.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export const empty = null;
5
5
  //# sourceMappingURL=register.gen.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { addSchema } from '@pikku/core/schema';
5
5
  import * as AddonMetaPage from './schemas/AddonMetaPage.schema.json' with { type: 'json' };
@@ -1 +1 @@
1
- { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "notes": { "type": "array", "items": { "$ref": "#/definitions/KnowledgeGraphNote" } }, "sections": { "type": "array", "items": { "$ref": "#/definitions/KnowledgeSection" } }, "tagCounts": { "type": "object", "additionalProperties": { "type": "number" }, "description": "Tag → how many notes carry it, for a browsable facet." }, "stats": { "type": "object", "properties": { "notes": { "type": "number" }, "sections": { "type": "number" }, "links": { "type": "number" }, "dangling": { "type": "number" } }, "required": ["notes", "sections", "links", "dangling"], "additionalProperties": false }, "findings": { "type": "array", "items": { "$ref": "#/definitions/KnowledgeFinding" }, "description": "What `pikku knowledge validate` would report, so the console shows the same verdict." }, "ok": { "type": "boolean" } }, "required": ["findings", "notes", "ok", "sections", "stats", "tagCounts"], "additionalProperties": false, "definitions": { "KnowledgeGraphNote": { "type": "object", "properties": { "path": { "type": "string" }, "section": { "type": "string", "description": "`''` for a note at the root of knowledge/." }, "type": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "resource": { "type": "array", "items": { "type": "string" }, "description": "The `<kind>:<id>` URIs from `resource:`, already split." }, "status": { "type": "string" }, "statusAt": { "type": "string", "description": "When `status` last changed, for a reader asking how long it has been there." }, "entities": { "type": "array", "items": { "type": "string" } }, "reserved": { "type": "string", "enum": ["index", "log"] }, "body": { "type": "string" }, "outbound": { "type": "array", "items": { "type": "string" }, "description": "Notes this one links to, as bundle-relative paths." }, "inbound": { "type": "array", "items": { "type": "string" }, "description": "Notes that link to this one." }, "dangling": { "type": "array", "items": { "type": "string" }, "description": "Link targets that resolve to no note. Legal in OKF — a note not written yet." } }, "required": ["path", "section", "title", "tags", "resource", "entities", "body", "outbound", "inbound", "dangling"], "additionalProperties": false, "description": "Declared rather than inferred, for the reason given on `KnowledgeFinding`: this shape is the body of the `getKnowledge` RPC's output, and a `z.infer<>` is not something a JSON-schema generator can walk.\n\nNote this is necessary but not sufficient for that RPC to ship an output schema — `KnowledgeBundle` reaches this type across a package boundary, and the inspector registers no type whose base is declared in another package." }, "KnowledgeSection": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "count": { "type": "number" } }, "required": ["name", "count"], "additionalProperties": false }, "KnowledgeFinding": { "type": "object", "properties": { "id": { "type": "string" }, "severity": { "type": "string", "enum": ["error", "warn", "info"] }, "message": { "type": "string" }, "path": { "type": "string" }, "fixHint": { "type": "string" } }, "required": ["id", "severity", "message", "path", "fixHint"], "additionalProperties": false, "description": "Declared, not inferred from the schema below.\n\nA finding crosses an RPC boundary as part of the `getKnowledge` payload, and a `z.infer<>` is not a type a JSON-schema generator can walk: zod's inference bottoms out in `this` types, so ts-json-schema-generator fails outright on it. An interface generates. The `satisfies` is what keeps the two from drifting — a field added to one and not the other is a compile error." } } }
1
+ { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "notes": { "type": "array", "items": { "$ref": "#/definitions/KnowledgeGraphNote" } }, "sections": { "type": "array", "items": { "$ref": "#/definitions/KnowledgeSection" } }, "tagCounts": { "type": "object", "additionalProperties": { "type": "number" }, "description": "Tag → how many notes carry it, for a browsable facet." }, "stats": { "type": "object", "properties": { "notes": { "type": "number" }, "sections": { "type": "number" }, "links": { "type": "number" }, "dangling": { "type": "number" } }, "required": ["notes", "sections", "links", "dangling"], "additionalProperties": false }, "findings": { "type": "array", "items": { "$ref": "#/definitions/KnowledgeFinding" }, "description": "What `pikku knowledge validate` would report, so the console shows the same verdict." }, "ok": { "type": "boolean" }, "plans": { "type": "object", "additionalProperties": { "$ref": "#/definitions/KnowledgeMilestonePlan" }, "description": "Keyed by the milestone note's path, so a note document can find its own plan." } }, "required": ["findings", "notes", "ok", "plans", "sections", "stats", "tagCounts"], "additionalProperties": false, "definitions": { "KnowledgeGraphNote": { "type": "object", "properties": { "path": { "type": "string" }, "section": { "type": "string", "description": "`''` for a note at the root of knowledge/." }, "type": { "type": "string" }, "title": { "type": "string" }, "description": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "resource": { "type": "array", "items": { "type": "string" }, "description": "The `<kind>:<id>` URIs from `resource:`, already split." }, "status": { "type": "string" }, "statusAt": { "type": "string", "description": "When `status` last changed, for a reader asking how long it has been there." }, "entities": { "type": "array", "items": { "type": "string" } }, "reserved": { "type": "string", "enum": ["index", "log"] }, "body": { "type": "string" }, "outbound": { "type": "array", "items": { "type": "string" }, "description": "Notes this one links to, as bundle-relative paths." }, "inbound": { "type": "array", "items": { "type": "string" }, "description": "Notes that link to this one." }, "dangling": { "type": "array", "items": { "type": "string" }, "description": "Link targets that resolve to no note. Legal in OKF — a note not written yet." } }, "required": ["path", "section", "title", "tags", "resource", "entities", "body", "outbound", "inbound", "dangling"], "additionalProperties": false, "description": "Declared rather than inferred, for the reason given on `KnowledgeFinding`: this shape is the body of the `getKnowledge` RPC's output, and a `z.infer<>` is not something a JSON-schema generator can walk.\n\nNote this is necessary but not sufficient for that RPC to ship an output schema — `KnowledgeBundle` reaches this type across a package boundary, and the inspector registers no type whose base is declared in another package." }, "KnowledgeSection": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "count": { "type": "number" } }, "required": ["name", "count"], "additionalProperties": false }, "KnowledgeFinding": { "type": "object", "properties": { "id": { "type": "string" }, "severity": { "type": "string", "enum": ["error", "warn", "info"] }, "message": { "type": "string" }, "path": { "type": "string" }, "fixHint": { "type": "string" } }, "required": ["id", "severity", "message", "path", "fixHint"], "additionalProperties": false, "description": "Declared, not inferred from the schema below.\n\nA finding crosses an RPC boundary as part of the `getKnowledge` payload, and a `z.infer<>` is not a type a JSON-schema generator can walk: zod's inference bottoms out in `this` types, so ts-json-schema-generator fails outright on it. An interface generates. The `satisfies` is what keeps the two from drifting — a field added to one and not the other is a compile error." }, "KnowledgeMilestonePlan": { "type": "object", "properties": { "plan": { "anyOf": [{ "$ref": "#/definitions/WirePlan" }, { "type": "null" }] }, "unavailable": { "type": ["string", "null"], "description": "Why there is no plan, for the reader to be told instead of being shown an empty one. `readPlan` already separates \"nobody wrote one\" from \"one is there and will not parse\", and those want different words in front of a person." }, "checklist": { "type": "array", "items": { "$ref": "#/definitions/PlanChecklistItem" } }, "complete": { "type": "boolean" } }, "required": ["plan", "unavailable", "checklist", "complete"], "additionalProperties": false, "description": "One milestone's technical plan, reconciled against the generated meta.\n\nThe milestone note is the ask — a title and a Gherkin block. The plan beside it is the answer: the tables, functions, roles, screens and scenarios that were promised. The checklist rides along rather than being a second call, because every row is a set-membership test against the same meta read, and a checklist fetched separately could disagree with the plan it is drawn beside." }, "WirePlan": { "type": "object", "properties": { "version": { "type": "number" }, "milestone": { "type": "string" }, "description": { "type": "string" }, "covers": { "type": "array", "items": { "$ref": "#/definitions/PlanCovers" } }, "model": { "$ref": "#/definitions/PlanSlot<PlanModelItem>" }, "functions": { "$ref": "#/definitions/PlanSlot<PlanFunctionItem>" }, "roles": { "$ref": "#/definitions/PlanSlot<PlanRoleItem>" }, "scopes": { "$ref": "#/definitions/PlanSlot<PlanNamedItem>" }, "ui": { "$ref": "#/definitions/PlanSlot<PlanUiItem>" }, "scenarios": { "type": "object", "properties": { "backend": { "$ref": "#/definitions/PlanSlot<PlanScenarioItem>" }, "browser": { "$ref": "#/definitions/PlanSlot<PlanScenarioItem>" }, "permission": { "$ref": "#/definitions/PlanSlot<PlanScenarioItem>" } }, "required": ["backend", "browser", "permission"], "additionalProperties": false } }, "required": ["version", "milestone", "description", "covers", "model", "functions", "roles", "scopes", "ui", "scenarios"], "additionalProperties": false }, "PlanCovers": { "type": "object", "properties": { "note": { "type": "string" }, "hash": { "type": "string" }, "complete": { "type": "boolean" } }, "required": ["note", "hash", "complete"], "additionalProperties": false }, "PlanSlot<PlanModelItem>": { "anyOf": [{ "type": "object", "properties": { "kind": { "type": "string", "const": "built" }, "description": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/definitions/PlanModelItem" } } }, "required": ["kind", "description", "items"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "n/a" }, "description": { "type": "string" } }, "required": ["kind", "description"], "additionalProperties": false }], "description": "The plan as it goes over the wire.\n\nStructurally the same as `Plan` in" }, "PlanModelItem": { "type": "object", "properties": { "table": { "type": "string" }, "description": { "type": "string" }, "fields": { "type": "array", "items": { "$ref": "#/definitions/PlanModelField" } }, "relationships": { "type": "array", "items": { "$ref": "#/definitions/PlanModelRelationship" } } }, "required": ["table", "description", "fields", "relationships"], "additionalProperties": false }, "PlanModelField": { "type": "object", "properties": { "name": { "type": "string" }, "type": { "type": "string" }, "classification": { "type": "string", "enum": ["public", "internal", "personal", "sensitive"] } }, "required": ["name", "type", "classification"], "additionalProperties": false }, "PlanModelRelationship": { "type": "object", "properties": { "column": { "type": "string" }, "references": { "type": "string" }, "onDelete": { "type": "string", "enum": ["cascade", "restrict", "orphan"] }, "provedBy": { "type": "string" } }, "required": ["column", "references", "onDelete"], "additionalProperties": false }, "PlanSlot<PlanFunctionItem>": { "anyOf": [{ "type": "object", "properties": { "kind": { "type": "string", "const": "built" }, "description": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/definitions/PlanFunctionItem" } } }, "required": ["kind", "description", "items"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "n/a" }, "description": { "type": "string" } }, "required": ["kind", "description"], "additionalProperties": false }], "description": "The plan as it goes over the wire.\n\nStructurally the same as `Plan` in" }, "PlanFunctionItem": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "pass": { "type": "number" }, "wire": { "anyOf": [{ "type": "object", "properties": { "transport": { "type": "string" }, "route": { "type": "string" } }, "required": ["transport"], "additionalProperties": false }, { "type": "null" }] }, "scopes": { "type": "array", "items": { "type": "string" } }, "permission": { "type": ["string", "null"] } }, "required": ["name", "description", "pass", "scopes", "permission"], "additionalProperties": false }, "PlanSlot<PlanRoleItem>": { "anyOf": [{ "type": "object", "properties": { "kind": { "type": "string", "const": "built" }, "description": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/definitions/PlanRoleItem" } } }, "required": ["kind", "description", "items"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "n/a" }, "description": { "type": "string" } }, "required": ["kind", "description"], "additionalProperties": false }], "description": "The plan as it goes over the wire.\n\nStructurally the same as `Plan` in" }, "PlanRoleItem": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "app": { "type": "string" } }, "additionalProperties": false, "required": ["description", "name"] }, "PlanSlot<PlanNamedItem>": { "anyOf": [{ "type": "object", "properties": { "kind": { "type": "string", "const": "built" }, "description": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/definitions/PlanNamedItem" } } }, "required": ["kind", "description", "items"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "n/a" }, "description": { "type": "string" } }, "required": ["kind", "description"], "additionalProperties": false }], "description": "The plan as it goes over the wire.\n\nStructurally the same as `Plan` in" }, "PlanNamedItem": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" } }, "required": ["name", "description"], "additionalProperties": false }, "PlanSlot<PlanUiItem>": { "anyOf": [{ "type": "object", "properties": { "kind": { "type": "string", "const": "built" }, "description": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/definitions/PlanUiItem" } } }, "required": ["kind", "description", "items"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "n/a" }, "description": { "type": "string" } }, "required": ["kind", "description"], "additionalProperties": false }], "description": "The plan as it goes over the wire.\n\nStructurally the same as `Plan` in" }, "PlanUiItem": { "type": "object", "properties": { "route": { "type": "string" }, "description": { "type": "string" }, "pass": { "type": "number" }, "app": { "type": "string" }, "scenarios": { "type": "array", "items": { "type": "string" } } }, "required": ["route", "description", "pass", "scenarios"], "additionalProperties": false }, "PlanSlot<PlanScenarioItem>": { "anyOf": [{ "type": "object", "properties": { "kind": { "type": "string", "const": "built" }, "description": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/definitions/PlanScenarioItem" } } }, "required": ["kind", "description", "items"], "additionalProperties": false }, { "type": "object", "properties": { "kind": { "type": "string", "const": "n/a" }, "description": { "type": "string" } }, "required": ["kind", "description"], "additionalProperties": false }], "description": "The plan as it goes over the wire.\n\nStructurally the same as `Plan` in" }, "PlanScenarioItem": { "type": "object", "properties": { "feature": { "type": "string" }, "scenario": { "type": "string" }, "fn": { "type": "string" }, "name": { "type": "string" } }, "required": ["feature", "scenario"], "additionalProperties": false }, "PlanChecklistItem": { "type": "object", "properties": { "id": { "type": "string", "description": "Stable across turns so the console can keep row identity as items land." }, "label": { "type": "string", "description": "What the plan called it — the description a reader recognises, not the symbol." }, "kind": { "type": "string", "enum": ["function", "wire", "scope", "scenario"] }, "done": { "type": "boolean" }, "deferred": { "type": "boolean", "description": "Promised by a later pass, so `fabric build-complete` never asks for it.\n\nSet by `planShortfall`, which is the only caller that can see every pass at once — `planProgress` works one pass at a time and leaves it false." } }, "required": ["id", "label", "kind", "done", "deferred"], "additionalProperties": false, "description": "One row of the build checklist the console renders.\n\n`done` is a set-membership test against codegen's meta, never a status anything types. That is the whole reason this replaced the agent's own todo list: a task the agent marks `completed` says only that it claimed to finish, and run 10 is the case against it — refused with four of six tasks unfinished, all four flipped to `completed` nine seconds later with nothing built." } } }
@@ -1 +1 @@
1
- { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "environment": { "type": "string" }, "results": { "type": "array", "items": { "$ref": "#/definitions/ScenarioResult" } }, "skipped": { "type": "array", "items": { "$ref": "#/definitions/ScenarioSkip" }, "description": "Scenarios not run at all, each carrying why. A skip is only useful if the reader can tell a browser scenario held back by `--no-browser` from one the project itself quarantined, so the reason travels with the name rather than being assumed by the formatter." }, "hookFailures": { "type": "array", "items": { "type": "string" }, "description": "Feature-level hook failures, which belong to no single scenario." }, "runId": { "type": "string" }, "status": { "$ref": "#/definitions/ScenarioRunStatus" }, "surface": { "type": "string", "description": "The surface the run targeted: `default`, `browser`, …" }, "startedAt": { "type": "string" }, "finishedAt": { "type": "string" } }, "required": ["environment", "hookFailures", "results", "runId", "skipped", "startedAt", "status", "surface"], "additionalProperties": false, "description": "A whole run, as it is stored and read back.\n\n`status` is `running` from the moment the run is created until it finishes, so a console watching a run in progress can tell \"still going\" from \"nothing came back\" — and a run killed halfway stays `running` forever, which is the honest record of what happened to it.", "definitions": { "ScenarioResult": { "type": "object", "properties": { "name": { "type": "string" }, "status": { "type": "string", "enum": ["passed", "failed"] }, "durationMs": { "type": "number" }, "output": {}, "error": { "type": "string" }, "steps": { "type": "array", "items": { "$ref": "#/definitions/ScenarioStepRow" } }, "failure": { "$ref": "#/definitions/ScenarioFailureDetail" }, "scenarioName": { "type": "string", "description": "The scenario registration this ran, which the label alone does not give." }, "feature": { "type": "string", "description": "The feature that grouped it, when one did." }, "tags": { "type": "array", "items": { "type": "string" } }, "artifacts": { "type": "array", "items": { "$ref": "#/definitions/ScenarioArtifact" }, "description": "Images and footage this scenario produced, filed under the run." } }, "required": ["name", "status", "durationMs"], "additionalProperties": false }, "ScenarioStepRow": { "type": "object", "properties": { "sentence": { "type": "string" }, "status": { "type": "string" }, "durationMs": { "type": "number" }, "error": { "type": "string" } }, "required": ["sentence", "status"], "additionalProperties": false, "description": "One step of a run, already joined to the prose that declared it." }, "ScenarioFailureDetail": { "type": "object", "properties": { "sentence": { "type": "string", "description": "The rendered sentence of the failing step; absent if no step failed." }, "message": { "type": "string" }, "stack": { "type": "string" }, "expected": { "type": "boolean", "description": "True when the failure was a deliberate one (a PikkuError). Its message is the whole story, so the stack is noise." }, "browser": { "type": "array", "items": { "$ref": "#/definitions/ScenarioBrowserFailure" } } }, "required": ["message"], "additionalProperties": false, "description": "Everything known about why one scenario failed." }, "ScenarioBrowserFailure": { "type": "object", "properties": { "actor": { "type": "string", "description": "The actor whose window this is." }, "url": { "type": "string", "description": "Where the window was pointed, when the driver can still report it." }, "screenshot": { "type": "string", "description": "Path the screenshot was written to; absent when none could be taken." }, "consoleErrors": { "type": "array", "items": { "type": "string" } }, "pageErrors": { "type": "array", "items": { "type": "string" } }, "failedRequests": { "type": "array", "items": { "type": "string" } }, "apiErrors": { "type": "array", "items": { "type": "string" } } }, "required": ["actor", "consoleErrors", "pageErrors", "failedRequests", "apiErrors"], "additionalProperties": false, "description": "What one actor's window looked like at the moment a scenario failed.\n\nA browser step fails with a selector timeout that says nothing about *why* the page never rendered. The answer is almost always in the page's own errors, which the driver has been collecting all along." }, "ScenarioArtifact": { "type": "object", "properties": { "scenario": { "type": "string", "description": "The scenario label this belongs to, as the report names it." }, "kind": { "$ref": "#/definitions/ScenarioArtifactKind" }, "path": { "type": "string" }, "actor": { "type": "string", "description": "Whose window it was — a two-actor scenario produces two of everything." }, "name": { "type": "string", "description": "The caption the scenario author took a screenshot under." } }, "required": ["scenario", "kind", "path"], "additionalProperties": false, "description": "One image or recording a scenario produced.\n\n`path` is relative to the run's artifact root and always uses forward slashes: it is a content key, not a filesystem path. Locally it resolves under the run's directory; on a hosted project it is the object key in a bucket, and the same record works unchanged." }, "ScenarioArtifactKind": { "type": "string", "enum": ["screenshot", "failure", "video"], "description": "What a run filed, in the order it filed it." }, "ScenarioSkip": { "type": "object", "properties": { "name": { "type": "string" }, "reason": { "type": "string" } }, "required": ["name", "reason"], "additionalProperties": false, "description": "One scenario that was not run, and why." }, "ScenarioRunStatus": { "type": "string", "enum": ["running", "passed", "failed"] } } }
1
+ { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "environment": { "type": "string" }, "results": { "type": "array", "items": { "$ref": "#/definitions/ScenarioResult" } }, "skipped": { "type": "array", "items": { "$ref": "#/definitions/ScenarioSkip" }, "description": "Scenarios not run at all, each carrying why. A skip is only useful if the reader can tell a browser scenario held back by `--no-browser` from one the project itself quarantined, so the reason travels with the name rather than being assumed by the formatter." }, "hookFailures": { "type": "array", "items": { "type": "string" }, "description": "Feature-level hook failures, which belong to no single scenario." }, "runId": { "type": "string" }, "status": { "$ref": "#/definitions/ScenarioRunStatus" }, "surface": { "type": "string", "description": "The surface the run targeted: `default`, `browser`, …" }, "startedAt": { "type": "string" }, "finishedAt": { "type": "string" } }, "required": ["environment", "hookFailures", "results", "runId", "skipped", "startedAt", "status", "surface"], "additionalProperties": false, "description": "A whole run, as it is stored and read back.\n\n`status` is `running` from the moment the run is created until it finishes, so a console watching a run in progress can tell \"still going\" from \"nothing came back\" — and a run killed halfway stays `running` forever, which is the honest record of what happened to it.", "definitions": { "ScenarioResult": { "type": "object", "properties": { "name": { "type": "string" }, "status": { "type": "string", "enum": ["passed", "failed"] }, "durationMs": { "type": "number" }, "output": {}, "error": { "type": "string" }, "steps": { "type": "array", "items": { "$ref": "#/definitions/ScenarioStepRow" } }, "failure": { "$ref": "#/definitions/ScenarioFailureDetail" }, "scenarioName": { "type": "string", "description": "The scenario registration this ran, which the label alone does not give." }, "feature": { "type": "string", "description": "The feature that grouped it, when one did." }, "tags": { "type": "array", "items": { "type": "string" } }, "artifacts": { "type": "array", "items": { "$ref": "#/definitions/ScenarioArtifact" }, "description": "Images and footage this scenario produced, filed under the run." } }, "required": ["name", "status", "durationMs"], "additionalProperties": false }, "ScenarioStepRow": { "type": "object", "properties": { "sentence": { "type": "string" }, "sentenceWithRole": { "type": "string", "description": "The same sentence with the actor's role in it — \"yasser (the founder) signs in\". Set only on the step that first names each actor, and only when a persona declares a job title or a role, so a reader who wants the context picks this and one who wants the bare run picks `sentence`." }, "status": { "type": "string" }, "durationMs": { "type": "number" }, "error": { "type": "string" } }, "required": ["sentence", "status"], "additionalProperties": false, "description": "One step of a run, already joined to the prose that declared it." }, "ScenarioFailureDetail": { "type": "object", "properties": { "sentence": { "type": "string", "description": "The rendered sentence of the failing step; absent if no step failed." }, "message": { "type": "string" }, "stack": { "type": "string" }, "expected": { "type": "boolean", "description": "True when the failure was a deliberate one (a PikkuError). Its message is the whole story, so the stack is noise." }, "browser": { "type": "array", "items": { "$ref": "#/definitions/ScenarioBrowserFailure" } } }, "required": ["message"], "additionalProperties": false, "description": "Everything known about why one scenario failed." }, "ScenarioBrowserFailure": { "type": "object", "properties": { "actor": { "type": "string", "description": "The actor whose window this is." }, "url": { "type": "string", "description": "Where the window was pointed, when the driver can still report it." }, "screenshot": { "type": "string", "description": "Path the screenshot was written to; absent when none could be taken." }, "consoleErrors": { "type": "array", "items": { "type": "string" } }, "pageErrors": { "type": "array", "items": { "type": "string" } }, "failedRequests": { "type": "array", "items": { "type": "string" } }, "apiErrors": { "type": "array", "items": { "type": "string" } } }, "required": ["actor", "consoleErrors", "pageErrors", "failedRequests", "apiErrors"], "additionalProperties": false, "description": "What one actor's window looked like at the moment a scenario failed.\n\nA browser step fails with a selector timeout that says nothing about *why* the page never rendered. The answer is almost always in the page's own errors, which the driver has been collecting all along." }, "ScenarioArtifact": { "type": "object", "properties": { "scenario": { "type": "string", "description": "The scenario label this belongs to, as the report names it." }, "kind": { "$ref": "#/definitions/ScenarioArtifactKind" }, "path": { "type": "string" }, "actor": { "type": "string", "description": "Whose window it was — a two-actor scenario produces two of everything." }, "name": { "type": "string", "description": "The caption the scenario author took a screenshot under." } }, "required": ["scenario", "kind", "path"], "additionalProperties": false, "description": "One image or recording a scenario produced.\n\n`path` is relative to the run's artifact root and always uses forward slashes: it is a content key, not a filesystem path. Locally it resolves under the run's directory; on a hosted project it is the object key in a bucket, and the same record works unchanged." }, "ScenarioArtifactKind": { "type": "string", "enum": ["screenshot", "failure", "video"], "description": "What a run filed, in the order it filed it." }, "ScenarioSkip": { "type": "object", "properties": { "name": { "type": "string" }, "reason": { "type": "string" } }, "required": ["name", "reason"], "additionalProperties": false, "description": "One scenario that was not run, and why." }, "ScenarioRunStatus": { "type": "string", "enum": ["running", "passed", "failed"] } } }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/scopes` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/scopes` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * This file was generated by the @pikku/cli
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * This file was generated by the @pikku/cli
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export { defineScope } from '@pikku/core/scope';
5
5
  export { defineSystemRole } from '@pikku/core/role';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export { defineScope } from '@pikku/core/scope';
5
5
  export { defineSystemRole } from '@pikku/core/role';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * This file was generated by the @pikku/cli
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/secrets` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/secrets` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export { defineSecret } from '@pikku/core/secret';
5
5
  //# sourceMappingURL=pikku-secret-types.gen.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export { defineSecret } from '@pikku/core/secret';
5
5
  //# sourceMappingURL=pikku-secret-types.gen.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { TypedSecretService as CoreTypedSecretService } from '@pikku/core/services';
5
5
  import type { SecretService } from '@pikku/core/services';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { TypedSecretService as CoreTypedSecretService } from '@pikku/core/services';
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { LocalMetaService } from '@pikku/core/services/local-meta';
5
5
  export declare class PikkuMetaService extends LocalMetaService {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { LocalMetaService } from '@pikku/core/services/local-meta';
5
5
  export class PikkuMetaService extends LocalMetaService {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/setup` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/setup` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Addon package types for pikkuAddonConfig and pikkuAddonServices
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Addon package types for pikkuAddonConfig and pikkuAddonServices
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Config and service factory definitions, declared once per application
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Config and service factory definitions, declared once per application
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/trigger` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/trigger` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/variables` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/variables` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export { defineVariable } from '@pikku/core/variable';
5
5
  //# sourceMappingURL=pikku-variable-types.gen.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  export { defineVariable } from '@pikku/core/variable';
5
5
  //# sourceMappingURL=pikku-variable-types.gen.js.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService } from '@pikku/core/services';
5
5
  import type { VariablesService } from '@pikku/core/services';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService, } from '@pikku/core/services';
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/workflow` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/workflow` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Scenario step map: the names `scenario.given/when/then` accepts, with
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  /**
5
5
  * Workflow type map with input/output types for each workflow
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import type { PikkuWorkflowGraphConfig, PikkuWorkflowGraphResult } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import { pikkuWorkflowGraph as corePikkuWorkflowGraph } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.120
2
+ * This file was generated by @pikku/cli@0.12.133
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/state';
5
5
  const workflowsMeta = {};
@@ -1,5 +1,5 @@
1
1
  export {};
2
2
  /**
3
- * This file was generated by @pikku/cli@0.12.120
3
+ * This file was generated by @pikku/cli@0.12.133
4
4
  */
5
5
  //# sourceMappingURL=pikku-workflow-wirings.gen.d.ts.map
@@ -1,5 +1,5 @@
1
1
  export {};
2
2
  /**
3
- * This file was generated by @pikku/cli@0.12.120
3
+ * This file was generated by @pikku/cli@0.12.133
4
4
  */
5
5
  //# sourceMappingURL=pikku-workflow-wirings.gen.js.map
@@ -9,6 +9,7 @@ const BUNDLE = {
9
9
  stats: { notes: 0, sections: 0, links: 0, dangling: 0 },
10
10
  findings: [],
11
11
  ok: true,
12
+ plans: {},
12
13
  };
13
14
  test('getKnowledge hands back whatever the service read off disk', async () => {
14
15
  const result = await getKnowledge.func({ knowledgeService: { getBundle: async () => BUNDLE } }, null, {});
@@ -1 +1 @@
1
- {"version":3,"file":"get-knowledge.function.test.js","sourceRoot":"","sources":["../../../src/functions/get-knowledge.function.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;IACvD,QAAQ,EAAE,EAAE;IACZ,EAAE,EAAE,IAAI;CACU,CAAA;AAEpB,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;IAC5E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CACpC,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,EAAW,EAChE,IAAa,EACb,EAAW,CACZ,CAAA;IACD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;IAClF,uEAAuE;IACvE,8EAA8E;IAC9E,wEAAwE;IACxE,6CAA6C;IAC7C,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAW,EAAE,IAAa,EAAE,EAAW,CAAC,EAChE,yBAAyB,CAC1B,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"get-knowledge.function.test.js","sourceRoot":"","sources":["../../../src/functions/get-knowledge.function.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAG1D,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,EAAE;IACT,QAAQ,EAAE,EAAE;IACZ,SAAS,EAAE,EAAE;IACb,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;IACvD,QAAQ,EAAE,EAAE;IACZ,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,EAAE;CACS,CAAA;AAEpB,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;IAC5E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CACpC,EAAE,gBAAgB,EAAE,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,EAAE,EAAW,EAChE,IAAa,EACb,EAAW,CACZ,CAAA;IACD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;IAClF,uEAAuE;IACvE,8EAA8E;IAC9E,wEAAwE;IACxE,6CAA6C;IAC7C,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAW,EAAE,IAAa,EAAE,EAAW,CAAC,EAChE,yBAAyB,CAC1B,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"db-schema.service.d.ts","sourceRoot":"","sources":["../../../src/services/db-schema.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEpE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,QAAQ,EAAE,CAAA;IACnB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAwED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE/C,SAAS,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAgC5C"}
1
+ {"version":3,"file":"db-schema.service.d.ts","sourceRoot":"","sources":["../../../src/services/db-schema.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEpE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,OAAO,CAAA;IACrB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,QAAQ,EAAE,CAAA;IACnB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAsFD,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAE/C,SAAS,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAgC5C"}
@@ -1,10 +1,10 @@
1
1
  // ── Helpers ───────────────────────────────────────────────────────────────────
2
- function classificationFor(visibility) {
3
- if (visibility === 'public' ||
4
- visibility === 'private' ||
5
- visibility === 'pii' ||
6
- visibility === 'secret')
7
- return visibility;
2
+ function classificationFor(security) {
3
+ if (security === 'public' ||
4
+ security === 'private' ||
5
+ security === 'pii' ||
6
+ security === 'secret')
7
+ return security;
8
8
  return 'private';
9
9
  }
10
10
  function camelToSnake(s) {
@@ -51,7 +51,7 @@ export class DbSchemaService {
51
51
  type: c.type,
52
52
  nullable: c.nullable,
53
53
  isPrimaryKey: c.isPrimaryKey,
54
- classification: classificationFor(ann?.visibility),
54
+ classification: classificationFor(ann?.security ?? ann?.visibility),
55
55
  };
56
56
  if (ann?.description)
57
57
  col.description = ann.description;