@noodleseed/one 0.121.0 → 0.122.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/commands/session.d.ts.map +1 -1
  2. package/dist/commands/session.js +5 -2
  3. package/dist/commands/session.js.map +1 -1
  4. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
  5. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  6. package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.js +4 -4
  7. package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.js +8 -8
  8. package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.js.map +1 -1
  9. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +1 -1
  10. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
  11. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  12. package/node_modules/@noodle-borg/assistant-gateway/package.json +1 -1
  13. package/node_modules/@noodle-borg/developer-mcp/dist/contracts.d.ts +30 -9
  14. package/node_modules/@noodle-borg/developer-mcp/dist/contracts.d.ts.map +1 -1
  15. package/node_modules/@noodle-borg/developer-mcp/dist/contracts.js +21 -6
  16. package/node_modules/@noodle-borg/developer-mcp/dist/contracts.js.map +1 -1
  17. package/node_modules/@noodle-borg/developer-mcp/dist/port.d.ts +2 -1
  18. package/node_modules/@noodle-borg/developer-mcp/dist/port.d.ts.map +1 -1
  19. package/node_modules/@noodle-borg/developer-mcp/dist/port.js.map +1 -1
  20. package/node_modules/@noodle-borg/developer-mcp/dist/prompts.js +3 -3
  21. package/node_modules/@noodle-borg/developer-mcp/dist/prompts.js.map +1 -1
  22. package/node_modules/@noodle-borg/developer-mcp/dist/resources.d.ts.map +1 -1
  23. package/node_modules/@noodle-borg/developer-mcp/dist/resources.js +10 -9
  24. package/node_modules/@noodle-borg/developer-mcp/dist/resources.js.map +1 -1
  25. package/node_modules/@noodle-borg/developer-mcp/dist/results.d.ts +4 -3
  26. package/node_modules/@noodle-borg/developer-mcp/dist/results.d.ts.map +1 -1
  27. package/node_modules/@noodle-borg/developer-mcp/dist/results.js +5 -19
  28. package/node_modules/@noodle-borg/developer-mcp/dist/results.js.map +1 -1
  29. package/node_modules/@noodle-borg/developer-mcp/dist/server.js +3 -3
  30. package/node_modules/@noodle-borg/developer-mcp/dist/server.js.map +1 -1
  31. package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.d.ts.map +1 -1
  32. package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.js +6 -25
  33. package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.js.map +1 -1
  34. package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.d.ts +16 -3
  35. package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.d.ts.map +1 -1
  36. package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.js +22 -19
  37. package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.js.map +1 -1
  38. package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.d.ts.map +1 -1
  39. package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.js +3 -9
  40. package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.js.map +1 -1
  41. package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.d.ts.map +1 -1
  42. package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.js +15 -16
  43. package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.js.map +1 -1
  44. package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.d.ts.map +1 -1
  45. package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.js +9 -17
  46. package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.js.map +1 -1
  47. package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.d.ts.map +1 -1
  48. package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.js +7 -10
  49. package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.js.map +1 -1
  50. package/node_modules/@noodle-borg/knowledge/dist/budget.d.ts +41 -17
  51. package/node_modules/@noodle-borg/knowledge/dist/budget.d.ts.map +1 -1
  52. package/node_modules/@noodle-borg/knowledge/dist/budget.js +0 -0
  53. package/node_modules/@noodle-borg/knowledge/dist/budget.js.map +1 -1
  54. package/node_modules/@noodle-borg/knowledge/dist/index.d.ts +1 -0
  55. package/node_modules/@noodle-borg/knowledge/dist/index.d.ts.map +1 -1
  56. package/node_modules/@noodle-borg/knowledge/dist/index.js +1 -0
  57. package/node_modules/@noodle-borg/knowledge/dist/index.js.map +1 -1
  58. package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.d.ts +22 -0
  59. package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.d.ts.map +1 -0
  60. package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.js +102 -0
  61. package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.js.map +1 -0
  62. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.d.ts +5 -3
  63. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.d.ts.map +1 -1
  64. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.js +61 -1
  65. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.js.map +1 -1
  66. package/node_modules/@noodle-borg/knowledge/dist/revision-store.d.ts +28 -1
  67. package/node_modules/@noodle-borg/knowledge/dist/revision-store.d.ts.map +1 -1
  68. package/node_modules/@noodle-borg/knowledge/dist/revision-store.js +39 -0
  69. package/node_modules/@noodle-borg/knowledge/dist/revision-store.js.map +1 -1
  70. package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.d.ts +6 -4
  71. package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.d.ts.map +1 -1
  72. package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.js +13 -16
  73. package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.js.map +1 -1
  74. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts +3 -2
  75. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts.map +1 -1
  76. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js +66 -47
  77. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js.map +1 -1
  78. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.d.ts.map +1 -1
  79. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js +15 -16
  80. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js.map +1 -1
  81. package/node_modules/@noodle-borg/service/dist/index.d.ts +2 -2
  82. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  83. package/node_modules/@noodle-borg/service/dist/index.js +1 -1
  84. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  85. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts +0 -2
  86. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts.map +1 -1
  87. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js +0 -16
  88. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js.map +1 -1
  89. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.d.ts +3 -28
  90. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.d.ts.map +1 -1
  91. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.js +8 -67
  92. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.js.map +1 -1
  93. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.d.ts +0 -4
  94. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.d.ts.map +1 -1
  95. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.js +1 -14
  96. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.js.map +1 -1
  97. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts +1 -1
  98. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts.map +1 -1
  99. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js +45 -36
  100. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js.map +1 -1
  101. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts +2 -2
  102. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts.map +1 -1
  103. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js +20 -229
  104. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js.map +1 -1
  105. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.d.ts +3 -2
  106. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.d.ts.map +1 -1
  107. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.js +70 -36
  108. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.js.map +1 -1
  109. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.d.ts +17 -6
  110. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.d.ts.map +1 -1
  111. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js +98 -26
  112. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js.map +1 -1
  113. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts.map +1 -1
  114. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js +0 -2
  115. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js.map +1 -1
  116. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js +1 -1
  117. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js.map +1 -1
  118. package/node_modules/@noodle-borg/service/dist/routes/analytics.js +3 -3
  119. package/node_modules/@noodle-borg/service/dist/routes/analytics.js.map +1 -1
  120. package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts.map +1 -1
  121. package/node_modules/@noodle-borg/service/dist/routes/apps.js +6 -27
  122. package/node_modules/@noodle-borg/service/dist/routes/apps.js.map +1 -1
  123. package/node_modules/@noodle-borg/service/dist/routes/config-values.d.ts.map +1 -1
  124. package/node_modules/@noodle-borg/service/dist/routes/config-values.js +5 -8
  125. package/node_modules/@noodle-borg/service/dist/routes/config-values.js.map +1 -1
  126. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +7 -6
  127. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  128. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +7 -6
  129. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  130. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js +1 -1
  131. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js.map +1 -1
  132. package/node_modules/@noodle-borg/service/dist/routes/deployment-package.d.ts.map +1 -1
  133. package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js +2 -7
  134. package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js.map +1 -1
  135. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -1
  136. package/node_modules/@noodle-borg/service/dist/routes/deployments.js +7 -20
  137. package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -1
  138. package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +1 -1
  139. package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js.map +1 -1
  140. package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts.map +1 -1
  141. package/node_modules/@noodle-borg/service/dist/routes/envs.js +4 -8
  142. package/node_modules/@noodle-borg/service/dist/routes/envs.js.map +1 -1
  143. package/node_modules/@noodle-borg/service/dist/routes/logs.js +1 -1
  144. package/node_modules/@noodle-borg/service/dist/routes/logs.js.map +1 -1
  145. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +1 -1
  146. package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
  147. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  148. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +21 -0
  149. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  150. package/node_modules/@noodle-borg/service/package.json +1 -1
  151. package/node_modules/@noodleseed/assistant/package.json +41 -16
  152. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-revision-store.d.ts","sourceRoot":"","sources":["../src/postgres-revision-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAgB7B,qBAAa,8BAA+B,YAAW,sBAAsB;;gBAG/D,IAAI,EAAE,IAAI;IAIhB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8B5D,YAAY,CAChB,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC;IAmBjB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,QAAQ,CACZ,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAmCV,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAwCtE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAWjC,MAAM,CACV,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IASnC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAoB/D,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;CAQnB"}
1
+ {"version":3,"file":"postgres-revision-store.d.ts","sourceRoot":"","sources":["../src/postgres-revision-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAgB7B,qBAAa,8BAA+B,YAAW,sBAAsB;;gBAI/D,IAAI,EAAE,IAAI,EAAE,KAAK,GAAE,iBAA6C;IAKtE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAyC7B,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8B5D,YAAY,CAChB,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC;IAmBjB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,QAAQ,CACZ,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAmCV,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAwCtE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAWjC,MAAM,CACV,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IASnC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAoB/D,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCvF,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC;IA6BvE,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;CAQnB"}
@@ -1,10 +1,13 @@
1
1
  import { knowledgeScopeKey } from './ir.js';
2
2
  import { KnowledgeError } from './ports.js';
3
+ import { identityDocumentTextCodec, } from './revision-store.js';
3
4
  const LEASE_TIMEOUT_MS = 60_000;
4
5
  export class PostgresKnowledgeRevisionStore {
5
6
  #pool;
6
- constructor(pool) {
7
+ #codec;
8
+ constructor(pool, codec = identityDocumentTextCodec) {
7
9
  this.#pool = pool;
10
+ this.#codec = codec;
8
11
  }
9
12
  async ensureSchema() {
10
13
  await this.#pool.query(`
@@ -33,6 +36,17 @@ export class PostgresKnowledgeRevisionStore {
33
36
  holder text NOT NULL,
34
37
  acquired_at timestamptz NOT NULL DEFAULT now()
35
38
  )
39
+ `);
40
+ // Sealed revision text (ADR 0202 D5 as amended): lets any stateless instance rebuild the
41
+ // bundled BM25 index for the active revision. Ciphertext only; the codec owner holds keys.
42
+ await this.#pool.query(`
43
+ CREATE TABLE IF NOT EXISTS knowledge_revision_documents (
44
+ revision_id text NOT NULL REFERENCES knowledge_revisions (revision_id) ON DELETE CASCADE,
45
+ path text NOT NULL,
46
+ ciphertext bytea NOT NULL,
47
+ bytes integer NOT NULL,
48
+ PRIMARY KEY (revision_id, path)
49
+ )
36
50
  `);
37
51
  }
38
52
  async stage(input) {
@@ -185,6 +199,52 @@ export class PostgresKnowledgeRevisionStore {
185
199
  }
186
200
  await this.#pool.query('DELETE FROM knowledge_revisions WHERE revision_id = $1', [revisionId]);
187
201
  }
202
+ async stageDocuments(revisionId, documents) {
203
+ const client = await this.#pool.connect();
204
+ try {
205
+ await client.query('BEGIN');
206
+ const revision = await client.query('SELECT revision_id FROM knowledge_revisions WHERE revision_id = $1 FOR UPDATE', [revisionId]);
207
+ if (revision.rows[0] === undefined) {
208
+ await client.query('ROLLBACK');
209
+ throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
210
+ }
211
+ await client.query('DELETE FROM knowledge_revision_documents WHERE revision_id = $1', [
212
+ revisionId,
213
+ ]);
214
+ for (const document of documents) {
215
+ const plaintext = Buffer.from(document.text, 'utf8');
216
+ await client.query(`INSERT INTO knowledge_revision_documents (revision_id, path, ciphertext, bytes)
217
+ VALUES ($1, $2, $3, $4)`, [revisionId, document.descriptor.path, this.#codec.seal(plaintext), plaintext.length]);
218
+ }
219
+ await client.query('COMMIT');
220
+ }
221
+ catch (error) {
222
+ await client.query('ROLLBACK').catch(() => undefined);
223
+ throw error;
224
+ }
225
+ finally {
226
+ client.release();
227
+ }
228
+ }
229
+ async documents(revisionId) {
230
+ const revision = await this.#pool.query('SELECT * FROM knowledge_revisions WHERE revision_id = $1', [revisionId]);
231
+ const row = revision.rows[0];
232
+ if (row === undefined) {
233
+ throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
234
+ }
235
+ const rows = await this.#pool.query('SELECT path, ciphertext FROM knowledge_revision_documents WHERE revision_id = $1', [revisionId]);
236
+ const byPath = new Map(rows.rows.map((text) => [text.path, text.ciphertext]));
237
+ if (byPath.size === 0 && row.documents.length > 0) {
238
+ throw new KnowledgeError('store', `revision ${revisionId} has no staged document text`);
239
+ }
240
+ return row.documents.map((descriptor) => {
241
+ const ciphertext = byPath.get(descriptor.path);
242
+ if (ciphertext === undefined) {
243
+ throw new KnowledgeError('store', `revision ${revisionId} is missing text for ${descriptor.path}`);
244
+ }
245
+ return { descriptor, text: this.#codec.open(ciphertext).toString('utf8') };
246
+ });
247
+ }
188
248
  rowScope(row) {
189
249
  return { org: row.org, app: row.app, env: row.env };
190
250
  }
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-revision-store.js","sourceRoot":"","sources":["../src/postgres-revision-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-revision-store.js","sourceRoot":"","sources":["../src/postgres-revision-store.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAA+C,MAAM,YAAY,CAAC;AACzF,OAAO,EAEL,yBAAyB,GAK1B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAchC,MAAM,OAAO,8BAA8B;IAChC,KAAK,CAAO;IACZ,MAAM,CAAoB;IAEnC,YAAY,IAAU,EAAE,QAA2B,yBAAyB;QAC1E,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;;;;;;;;;;;;KAatB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;;;;KAKtB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;;;;;KAMtB,CAAC,CAAC;QACH,yFAAyF;QACzF,2FAA2F;QAC3F,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;;;;;;;KAQtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAyB;QACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACnC;;;uGAGiG,EACjG;YACE,KAAK,CAAC,QAAQ,CAAC,UAAU;YACzB,KAAK,CAAC,KAAK,CAAC,GAAG;YACf,KAAK,CAAC,KAAK,CAAC,GAAG;YACf,KAAK,CAAC,KAAK,CAAC,GAAG;YACf,KAAK,CAAC,aAAa;YACnB,KAAK,CAAC,WAAW;YACjB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;SACzC,CACF,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACrC;;8FAEwF,EACxF,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,CAC5F,CAAC;QACF,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,GAAG,KAAK,SAAS;YACnB,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,6CAA6C,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,KAAqB,EACrB,aAAqB,EACrB,MAAc;QAEd,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACzD,SAAS,CAAC;YACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACnC;;;;gFAIwE,gBAAgB;6BACnE,EACrB,CAAC,QAAQ,EAAE,MAAM,CAAC,CACnB,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,QAAQ,IAAI,MAAM,EAAE,EAAE,CAAC;YACxD,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAmB;QACpC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,+DAA+D,EAAE;YACtF,MAAM,CAAC,QAAQ;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,KAAqB,EACrB,aAAqB,EACrB,UAAkB,EAClB,YAAoB;QAEpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CACjC,qEAAqE,EACrE,CAAC,UAAU,CAAC,CACb,CAAC;YACF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM,IAAI,cAAc,CAAC,WAAW,EAAE,YAAY,UAAU,gBAAgB,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,CAChB;qHAC6G,EAC7G,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,CAC7D,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAAC,wEAAwE,EAAE;gBAC3F,UAAU;aACX,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAChB;;oEAE4D,EAC5D,CAAC,YAAY,EAAE,UAAU,CAAC,CAC3B,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAkB,EAAE,YAAoB;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACnC;;;6BAGuB,EACvB,CAAC,YAAY,EAAE,UAAU,CAAC,CAC3B,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAC9B,MAAM,IAAI,cAAc,CAAC,WAAW,EAAE,YAAY,UAAU,gBAAgB,CAAC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,YAAoB;QACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,4EAA4E,EAC5E,CAAC,YAAY,CAAC,CACf,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;YAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAC/B,0DAA0D,EAC1D,CAAC,UAAU,CAAC,CACb,CAAC;YACF,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,MAAM,CAAC,KAAK,CAChB;qHAC6G,EAC7G,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAC7E,CAAC;YACF,MAAM,MAAM,CAAC,KAAK,CAAC,wEAAwE,EAAE;gBAC3F,UAAU;aACX,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACnC;;;;WAIK,CACN,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CACV,KAAqB,EACrB,aAAqB;QAErB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACnC;6FACuF,EACvF,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CACjD,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACnC,0DAA0D,EAC1D,CAAC,UAAU,CAAC,CACb,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACjC,4EAA4E,EAC5E,CAAC,UAAU,CAAC,CACb,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAC9B,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACxD,QAAQ,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;SAC5C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,4CAA4C,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,wDAAwD,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,UAAkB,EAAE,SAAoC;QAC3E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CACjC,+EAA+E,EAC/E,CAAC,UAAU,CAAC,CACb,CAAC;YACF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM,IAAI,cAAc,CAAC,WAAW,EAAE,YAAY,UAAU,gBAAgB,CAAC,CAAC;YAChF,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,CAAC,iEAAiE,EAAE;gBACpF,UAAU;aACX,CAAC,CAAC;YACH,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACrD,MAAM,MAAM,CAAC,KAAK,CAChB;mCACyB,EACzB,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CACtF,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAkB;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACrC,0DAA0D,EAC1D,CAAC,UAAU,CAAC,CACb,CAAC;QACF,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CAAC,WAAW,EAAE,YAAY,UAAU,gBAAgB,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACjC,kFAAkF,EAClF,CAAC,UAAU,CAAC,CACb,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,cAAc,CAAC,OAAO,EAAE,YAAY,UAAU,8BAA8B,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YACtC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,cAAc,CACtB,OAAO,EACP,YAAY,UAAU,wBAAwB,UAAU,CAAC,IAAI,EAAE,CAChE,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,GAAgB;QAC/B,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAEO,UAAU,CAAC,GAAgB;QACjC,OAAO;YACL,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YACzB,aAAa,EAAE,GAAG,CAAC,cAAc;YACjC,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC;IACJ,CAAC;CACF"}
@@ -1,5 +1,16 @@
1
1
  import type { KnowledgeScope } from './ir.js';
2
- import type { KnowledgeRevision } from './ports.js';
2
+ import type { KnowledgeRevision, StagedDocument } from './ports.js';
3
+ /**
4
+ * Seals document text at rest and opens it for BM25 rebuilds (ADR 0202 D5 as amended: the
5
+ * managed-bundled tier persists revision text sealed in the revision store so a stateless
6
+ * instance can rebuild the active index). The service injects its secret-box codec; tests
7
+ * and non-durable stores may use the identity codec.
8
+ */
9
+ export interface DocumentTextCodec {
10
+ seal(plaintext: Buffer): Buffer;
11
+ open(sealed: Buffer): Buffer;
12
+ }
13
+ export declare const identityDocumentTextCodec: DocumentTextCodec;
3
14
  export interface StageRevisionInput {
4
15
  readonly scope: KnowledgeScope;
5
16
  readonly componentName: string;
@@ -39,12 +50,26 @@ export interface KnowledgeRevisionStore {
39
50
  record(revisionId: string): Promise<RevisionRecord | undefined>;
40
51
  /** Delete a revision record; refuses an active or pinned one. */
41
52
  delete(revisionId: string): Promise<void>;
53
+ /**
54
+ * Persist the revision's sealed document text so any instance can rebuild the bundled
55
+ * index (ADR 0202 D5 as amended). Idempotent full replacement per revision.
56
+ */
57
+ stageDocuments(revisionId: string, documents: readonly StagedDocument[]): Promise<void>;
58
+ /**
59
+ * The staged text for a revision. Throws `KnowledgeError` when the revision is unknown or
60
+ * its text was never staged — a rebuild must fail loudly, never index an empty corpus.
61
+ */
62
+ documents(revisionId: string): Promise<readonly StagedDocument[]>;
42
63
  }
43
64
  export declare function documentsContentHash(documentHashes: readonly string[]): string;
44
65
  export declare class InMemoryKnowledgeRevisionStore implements KnowledgeRevisionStore {
45
66
  private readonly records;
46
67
  private readonly leases;
47
68
  private readonly deploymentPins;
69
+ /** revisionId → path → sealed text; sealed even in memory so the codec path is exercised. */
70
+ private readonly sealedText;
71
+ private readonly codec;
72
+ constructor(codec?: DocumentTextCodec);
48
73
  stage(input: StageRevisionInput): Promise<KnowledgeRevision>;
49
74
  acquireLease(scope: KnowledgeScope, componentName: string, holder: string): Promise<LeaseTicket>;
50
75
  releaseLease(ticket: LeaseTicket): Promise<void>;
@@ -55,5 +80,7 @@ export declare class InMemoryKnowledgeRevisionStore implements KnowledgeRevision
55
80
  active(scope: KnowledgeScope, componentName: string): Promise<KnowledgeRevision | undefined>;
56
81
  record(revisionId: string): Promise<RevisionRecord | undefined>;
57
82
  delete(revisionId: string): Promise<void>;
83
+ stageDocuments(revisionId: string, documents: readonly StagedDocument[]): Promise<void>;
84
+ documents(revisionId: string): Promise<readonly StagedDocument[]>;
58
85
  }
59
86
  //# sourceMappingURL=revision-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"revision-store.d.ts","sourceRoot":"","sources":["../src/revision-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revision-store.d.ts","sourceRoot":"","sources":["../src/revision-store.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@
10
10
  import { createHash } from 'node:crypto';
11
11
  import { knowledgeScopeKey } from './ir.js';
12
12
  import { KnowledgeError } from './ports.js';
13
+ export const identityDocumentTextCodec = {
14
+ seal: (plaintext) => plaintext,
15
+ open: (sealed) => sealed,
16
+ };
13
17
  export function documentsContentHash(documentHashes) {
14
18
  return createHash('sha256').update(documentHashes.join('\n')).digest('hex');
15
19
  }
@@ -18,6 +22,12 @@ export class InMemoryKnowledgeRevisionStore {
18
22
  records = new Map();
19
23
  leases = new Map();
20
24
  deploymentPins = new Map();
25
+ /** revisionId → path → sealed text; sealed even in memory so the codec path is exercised. */
26
+ sealedText = new Map();
27
+ codec;
28
+ constructor(codec = identityDocumentTextCodec) {
29
+ this.codec = codec;
30
+ }
21
31
  async stage(input) {
22
32
  const scopeKey = knowledgeScopeKey(input.scope, input.componentName);
23
33
  const existing = [...this.records.values()].find((record) => knowledgeScopeKey(record.revision.scope, record.revision.componentName) === scopeKey &&
@@ -95,6 +105,7 @@ export class InMemoryKnowledgeRevisionStore {
95
105
  for (const [revisionId, record] of this.records) {
96
106
  if (record.state !== 'active' && record.pins.size === 0) {
97
107
  this.records.delete(revisionId);
108
+ this.sealedText.delete(revisionId);
98
109
  removed += 1;
99
110
  }
100
111
  }
@@ -123,6 +134,34 @@ export class InMemoryKnowledgeRevisionStore {
123
134
  throw new KnowledgeError('store', 'cannot delete a deployment-pinned revision');
124
135
  }
125
136
  this.records.delete(revisionId);
137
+ this.sealedText.delete(revisionId);
138
+ }
139
+ async stageDocuments(revisionId, documents) {
140
+ if (!this.records.has(revisionId)) {
141
+ throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
142
+ }
143
+ const sealed = new Map();
144
+ for (const document of documents) {
145
+ sealed.set(document.descriptor.path, this.codec.seal(Buffer.from(document.text, 'utf8')));
146
+ }
147
+ this.sealedText.set(revisionId, sealed);
148
+ }
149
+ async documents(revisionId) {
150
+ const record = this.records.get(revisionId);
151
+ if (record === undefined) {
152
+ throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
153
+ }
154
+ const sealed = this.sealedText.get(revisionId);
155
+ if (sealed === undefined && record.revision.documents.length > 0) {
156
+ throw new KnowledgeError('store', `revision ${revisionId} has no staged document text`);
157
+ }
158
+ return record.revision.documents.map((descriptor) => {
159
+ const ciphertext = sealed?.get(descriptor.path);
160
+ if (ciphertext === undefined) {
161
+ throw new KnowledgeError('store', `revision ${revisionId} is missing text for ${descriptor.path}`);
162
+ }
163
+ return { descriptor, text: this.codec.open(ciphertext).toString('utf8') };
164
+ });
126
165
  }
127
166
  }
128
167
  //# sourceMappingURL=revision-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"revision-store.js","sourceRoot":"","sources":["../src/revision-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revision-store.js","sourceRoot":"","sources":["../src/revision-store.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DeveloperCapability } from '@noodle-borg/developer-mcp';
1
+ import { type DeveloperCapability } from '@noodle-borg/developer-mcp';
2
2
  import { type DeveloperAccessGrant, type DeveloperGrantStore } from '../oauth/developer-grant.js';
3
3
  import type { ControlPlaneStore } from '../store.js';
4
4
  import type { ControlPlaneIdentity } from './deploy-gate.js';
@@ -6,11 +6,13 @@ export interface DeveloperGrantAuthorizationContext {
6
6
  readonly grants: DeveloperGrantStore;
7
7
  readonly controlPlane: ControlPlaneStore;
8
8
  readonly org: string;
9
- readonly env?: string;
10
9
  readonly capability: DeveloperCapability;
10
+ readonly resourcePath: string;
11
11
  readonly now?: () => string;
12
12
  }
13
13
  export declare function authorizeDeveloperGrant(identity: ControlPlaneIdentity, context: DeveloperGrantAuthorizationContext): Promise<boolean>;
14
- export declare function activeDeveloperGrantForIdentity(identity: ControlPlaneIdentity, grants: DeveloperGrantStore, at?: string): Promise<DeveloperAccessGrant | undefined>;
15
- export declare function developerEnvironmentAllowlist(identity: ControlPlaneIdentity, grants: DeveloperGrantStore | undefined): Promise<ReadonlySet<string> | undefined>;
14
+ export declare function activeDeveloperGrantForIdentity(identity: ControlPlaneIdentity, grants: DeveloperGrantStore, options?: {
15
+ readonly at?: string;
16
+ readonly resource?: string;
17
+ }): Promise<DeveloperAccessGrant | undefined>;
16
18
  //# sourceMappingURL=developer-grant-guard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"developer-grant-guard.d.ts","sourceRoot":"","sources":["../../src/auth/developer-grant-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,mBAAmB,EAC3B,EAAE,GAAE,MAAiC,GACpC,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAY3C;AAED,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAK1C"}
1
+ {"version":3,"file":"developer-grant-guard.d.ts","sourceRoot":"","sources":["../../src/auth/developer-grant-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAyB,MAAM,4BAA4B,CAAC;AAE7F,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,OAAO,CAAC,CAclB;AAED,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACjE,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAa3C"}
@@ -1,22 +1,26 @@
1
+ import { developerResourcePath } from '@noodle-borg/developer-mcp';
1
2
  import { activeDeveloperGrant, } from '../oauth/developer-grant.js';
2
3
  export async function authorizeDeveloperGrant(identity, context) {
3
4
  if (identity.developerGrantId === undefined || identity.oauthClientId === undefined)
4
5
  return false;
5
- const grant = await activeDeveloperGrantForIdentity(identity, context.grants, context.now?.() ?? new Date().toISOString());
6
+ const grant = await activeDeveloperGrantForIdentity(identity, context.grants, {
7
+ at: context.now?.() ?? new Date().toISOString(),
8
+ });
6
9
  if (grant === undefined)
7
10
  return false;
8
- if (grant.org !== context.org)
9
- return false;
10
- if (context.env !== undefined && !grant.environments.includes(context.env))
11
+ if (developerResourcePath(grant.resource) !== context.resourcePath)
11
12
  return false;
12
13
  if (!grant.capabilities.includes(context.capability))
13
14
  return false;
14
- return ((await context.controlPlane.getOrgMember({
15
+ const member = await context.controlPlane.getOrgMember({
15
16
  org: context.org,
16
17
  subject: identity.subject,
17
- })) !== undefined);
18
+ });
19
+ if (member === undefined)
20
+ return false;
21
+ return context.capability !== 'deployments:rollback' || member.role === 'owner';
18
22
  }
19
- export async function activeDeveloperGrantForIdentity(identity, grants, at = new Date().toISOString()) {
23
+ export async function activeDeveloperGrantForIdentity(identity, grants, options = {}) {
20
24
  if (identity.developerGrantId === undefined || identity.oauthClientId === undefined)
21
25
  return undefined;
22
26
  const grant = await grants.get(identity.developerGrantId);
@@ -24,17 +28,10 @@ export async function activeDeveloperGrantForIdentity(identity, grants, at = new
24
28
  activeDeveloperGrant(grant, {
25
29
  subject: identity.subject,
26
30
  clientId: identity.oauthClientId,
27
- at,
31
+ resource: options.resource ?? grant.resource,
32
+ at: options.at ?? new Date().toISOString(),
28
33
  })
29
34
  ? grant
30
35
  : undefined;
31
36
  }
32
- export async function developerEnvironmentAllowlist(identity, grants) {
33
- if (identity.developerGrantId === undefined)
34
- return undefined;
35
- if (grants === undefined)
36
- return new Set();
37
- const grant = await activeDeveloperGrantForIdentity(identity, grants);
38
- return new Set(grant?.environments ?? []);
39
- }
40
37
  //# sourceMappingURL=developer-grant-guard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"developer-grant-guard.js","sourceRoot":"","sources":["../../src/auth/developer-grant-guard.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,GAGrB,MAAM,6BAA6B,CAAC;AAarC,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAA8B,EAC9B,OAA2C;IAE3C,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAClG,MAAM,KAAK,GAAG,MAAM,+BAA+B,CACjD,QAAQ,EACR,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAC5C,CAAC;IACF,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACzF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,OAAO,CACL,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;QACvC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC,KAAK,SAAS,CAClB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,QAA8B,EAC9B,MAA2B,EAC3B,KAAa,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;IAErC,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QACjF,OAAO,SAAS,CAAC;IACnB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC1D,OAAO,KAAK,KAAK,SAAS;QACxB,oBAAoB,CAAC,KAAK,EAAE;YAC1B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,aAAa;YAChC,EAAE;SACH,CAAC;QACF,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,QAA8B,EAC9B,MAAuC;IAEvC,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,MAAM,+BAA+B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtE,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"developer-grant-guard.js","sourceRoot":"","sources":["../../src/auth/developer-grant-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE7F,OAAO,EACL,oBAAoB,GAGrB,MAAM,6BAA6B,CAAC;AAarC,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAA8B,EAC9B,OAA2C;IAE3C,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAClG,MAAM,KAAK,GAAG,MAAM,+BAA+B,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;QAC5E,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KAChD,CAAC,CAAC;IACH,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACjF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC;QACrD,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,QAAQ,CAAC,OAAO;KAC1B,CAAC,CAAC;IACH,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,OAAO,CAAC,UAAU,KAAK,sBAAsB,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC;AAClF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,QAA8B,EAC9B,MAA2B,EAC3B,UAAgE,EAAE;IAElE,IAAI,QAAQ,CAAC,gBAAgB,KAAK,SAAS,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;QACjF,OAAO,SAAS,CAAC;IACnB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC1D,OAAO,KAAK,KAAK,SAAS;QACxB,oBAAoB,CAAC,KAAK,EAAE;YAC1B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,aAAa;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ;YAC5C,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SAC3C,CAAC;QACF,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type AppInspectionView, type DeploymentInspectionView, type DeveloperControlPlane, type DeveloperMcpContext, type EventsView, type GetLogsInput, type GetMetricsInput, type GetSessionInput, type InspectAppInput, type InspectDeploymentInput, type ListAppsInput, type ListAppsView, type ListEventsInput, type LogsView, type MetricsView, type RollbackDeploymentInput, type RollbackView, type SessionView } from '@noodle-borg/developer-mcp';
1
+ import { type AppInspectionView, type DeploymentInspectionView, type DeveloperContextView, type DeveloperControlPlane, type DeveloperMcpContext, type EventsView, type GetLogsInput, type GetMetricsInput, type GetSessionInput, type InspectAppInput, type InspectDeploymentInput, type ListAppsInput, type ListAppsView, type ListEventsInput, type LogsView, type MetricsView, type RollbackDeploymentInput, type RollbackView, type SessionView } from '@noodle-borg/developer-mcp';
2
2
  import type { RequestEventStore } from '@noodle-borg/module';
3
3
  import type { ServerRegistry } from '../registry.js';
4
4
  import type { AuditSink } from '../store/audit.js';
@@ -9,7 +9,7 @@ export interface ServiceDeveloperControlPlaneOptions {
9
9
  readonly registry: DeveloperRegistry;
10
10
  readonly logs: UserAppLogStore;
11
11
  readonly requestEvents: RequestEventStore;
12
- readonly controlPlane: Pick<ControlPlaneStore, 'getActiveMcpSubdomain' | 'getOrgMember'>;
12
+ readonly controlPlane: Pick<ControlPlaneStore, 'getActiveMcpSubdomain' | 'getOrgMember' | 'listOrgsForSubject'>;
13
13
  readonly audit: AuditSink;
14
14
  readonly publicBaseUrl: string;
15
15
  readonly publicBaseDomain?: string;
@@ -18,6 +18,7 @@ export interface ServiceDeveloperControlPlaneOptions {
18
18
  export declare class ServiceDeveloperControlPlane implements DeveloperControlPlane {
19
19
  #private;
20
20
  constructor(options: ServiceDeveloperControlPlaneOptions);
21
+ getContext(ctx: DeveloperMcpContext): Promise<DeveloperContextView>;
21
22
  listApps(ctx: DeveloperMcpContext, input: ListAppsInput): Promise<ListAppsView>;
22
23
  inspectApp(ctx: DeveloperMcpContext, input: InspectAppInput): Promise<AppInspectionView>;
23
24
  inspectDeployment(ctx: DeveloperMcpContext, input: InspectDeploymentInput): Promise<DeploymentInspectionView>;
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane-adapter.d.ts","sourceRoot":"","sources":["../../src/developer-mcp/control-plane-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAE7B,KAAK,qBAAqB,EAG1B,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,KAAK,EAAc,iBAAiB,EAAiC,MAAM,aAAa,CAAC;AAUhG,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,cAAc,EACZ,UAAU,GACV,QAAQ,GACR,gBAAgB,GAChB,eAAe,GACf,KAAK,GACL,WAAW,GACX,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,UAAU,CACb,CAAC;AAEF,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,uBAAuB,GAAG,cAAc,CAAC,CAAC;IACzF,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,qBAAa,4BAA6B,YAAW,qBAAqB;;gBAU5D,OAAO,EAAE,mCAAmC;IAWlD,QAAQ,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ/E,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAcxF,iBAAiB,CACrB,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,wBAAwB,CAAC;IA0E9B,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAezE,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBlF,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBjF,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAYlF,kBAAkB,CACtB,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,YAAY,CAAC;CAiCzB"}
1
+ {"version":3,"file":"control-plane-adapter.d.ts","sourceRoot":"","sources":["../../src/developer-mcp/control-plane-adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAG7B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAG1B,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAgB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAClF,OAAO,KAAK,EAAc,iBAAiB,EAAiC,MAAM,aAAa,CAAC;AAUhG,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,cAAc,EACZ,UAAU,GACV,QAAQ,GACR,gBAAgB,GAChB,eAAe,GACf,KAAK,GACL,WAAW,GACX,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,UAAU,CACb,CAAC;AAEF,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,IAAI,CACzB,iBAAiB,EACjB,uBAAuB,GAAG,cAAc,GAAG,oBAAoB,CAChE,CAAC;IACF,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,qBAAa,4BAA6B,YAAW,qBAAqB;;gBAa5D,OAAO,EAAE,mCAAmC;IAWlD,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2BnE,QAAQ,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAM/E,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAYxF,iBAAiB,CACrB,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,wBAAwB,CAAC;IAyE9B,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;IAezE,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBlF,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBjF,UAAU,CAAC,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAYlF,kBAAkB,CACtB,GAAG,EAAE,mBAAmB,EACxB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,YAAY,CAAC;CAkDzB"}