@makaio/framework 1.0.0-dev-1790783144258 → 1.0.0-dev-1791396836202

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 (94) hide show
  1. package/dist/.makaio-build.json +2 -2
  2. package/dist/adapters/claude/index.d.mts +20 -20
  3. package/dist/artifact-BbNQHNDL.mjs +1 -0
  4. package/dist/bus/index.mjs +1 -1
  5. package/dist/bus-CtT6XeB_.mjs +9 -0
  6. package/dist/contracts/adapter/index.d.mts +1 -1
  7. package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
  8. package/dist/contracts/artifact/index.d.mts +3 -3
  9. package/dist/contracts/artifact/index.mjs +1 -1
  10. package/dist/contracts/automation-trigger/index.d.mts +1 -1
  11. package/dist/contracts/capabilities/index.d.mts +1 -1
  12. package/dist/contracts/client/index.d.mts +2 -2
  13. package/dist/contracts/extension/index.d.mts +4 -4
  14. package/dist/contracts/harness/index.d.mts +1 -1
  15. package/dist/contracts/index.d.mts +58 -58
  16. package/dist/contracts/index.mjs +1 -1
  17. package/dist/contracts/materialization/index.d.mts +2 -2
  18. package/dist/contracts/materialization/index.mjs +1 -1
  19. package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
  20. package/dist/contracts/reaction/index.d.mts +1 -1
  21. package/dist/contracts/worker/index.d.mts +1 -1
  22. package/dist/contracts/worker/index.mjs +1 -1
  23. package/dist/contracts/workflow/index.d.mts +2 -2
  24. package/dist/contracts/workflow/index.mjs +1 -1
  25. package/dist/{contribution-CsDOPiDo.d.mts → contribution-CCVRsaNB.d.mts} +1 -1
  26. package/dist/{extension-context-BY9o1ITm.d.mts → extension-context-BWrjVPXR.d.mts} +3 -3
  27. package/dist/{framework-packages-blqho6Nk.mjs → framework-packages-CdpSqDeo.mjs} +1 -1
  28. package/dist/{hook-responses-Xxq6QAL2.d.mts → hook-responses-v6EA_7WC.d.mts} +1 -1
  29. package/dist/{index-D9Ome4qp.d.mts → index-BXaNt9GP.d.mts} +1 -1
  30. package/dist/{index-DWWP2cUb.d.mts → index-Bt6KIvVk.d.mts} +1 -1
  31. package/dist/{index-PymaxRkQ2.d.mts → index-CFet5T7v2.d.mts} +6 -6
  32. package/dist/{index-VG-C-ZHN.d.mts → index-CgcMrxhm.d.mts} +16 -16
  33. package/dist/{index-Dnc0PaTv2.d.mts → index-ChwEMUbc2.d.mts} +12 -12
  34. package/dist/{index-OA1A-NWE.d.mts → index-CjM6Fi-N.d.mts} +1 -1
  35. package/dist/{index-DMFFSC7x.d.mts → index-Cxx1aoPR.d.mts} +1 -1
  36. package/dist/{index-D_Zdnh0U.d.mts → index-D5eIy_qx.d.mts} +7 -7
  37. package/dist/{index-CDezXPm9.d.mts → index-DBkmFhrn.d.mts} +411 -289
  38. package/dist/{index-C9X6ei7S.d.mts → index-DneUbrTU.d.mts} +4 -4
  39. package/dist/{index-CnVhfLrY.d.mts → index-DnsMV2xK.d.mts} +57 -57
  40. package/dist/{index-Fmdwbgei.d.mts → index-HsD17NLG.d.mts} +1 -1
  41. package/dist/{index-BrnOW7-5.d.mts → index-Rd9Teoza.d.mts} +1 -1
  42. package/dist/{index-Fo4ALycy.d.mts → index-y6zuCdvH.d.mts} +26 -26
  43. package/dist/kernel/extension/index.d.mts +2 -2
  44. package/dist/kernel/index.d.mts +2 -2
  45. package/dist/kernel/observability/index.d.mts +1 -1
  46. package/dist/{materialization-BzSgnv2R.mjs → materialization-C1qlFBV2.mjs} +1 -1
  47. package/dist/{namespace-BH9U2C1O.d.mts → namespace-ChJ-C9m_.d.mts} +2 -2
  48. package/dist/package.json +1 -1
  49. package/dist/packages-BOM7wECe.mjs +1 -0
  50. package/dist/{packages-Fy4a6vQy.d.mts → packages-g6BtlUF9.d.mts} +9 -6
  51. package/dist/{schemas-JPaSXxNr.d.mts → schemas-BBMHnFq8.d.mts} +4 -4
  52. package/dist/{schemas-CEc_v3dl.d.mts → schemas-DKaUrczB.d.mts} +2 -2
  53. package/dist/{schemas-DyTbvDp-.d.mts → schemas-DnrIc9g7.d.mts} +50 -11
  54. package/dist/{schemas-BYEgjPst2.d.mts → schemas-DrrpHMbF2.d.mts} +7 -7
  55. package/dist/{schemas-CiJpGURT.d.mts → schemas-Y3EJu698.d.mts} +2 -2
  56. package/dist/{schemas-BvDsO8Is.mjs → schemas-uNzmiLso.mjs} +1 -1
  57. package/dist/services/context-rules/index.d.mts +3 -3
  58. package/dist/services/execution-target/index.d.mts +2 -2
  59. package/dist/services/execution-target/namespace.d.mts +1 -1
  60. package/dist/services/execution-target/schemas.d.mts +1 -1
  61. package/dist/services/filesystem/namespace.d.mts +6 -6
  62. package/dist/services/filesystem/schemas.d.mts +3 -3
  63. package/dist/services/git/namespace.d.mts +2 -2
  64. package/dist/services/git/schemas.d.mts +2 -2
  65. package/dist/services/index.d.mts +18 -18
  66. package/dist/services/index.mjs +1 -1
  67. package/dist/services/materialization/index.d.mts +1 -1
  68. package/dist/services/materialization/index.mjs +1 -1
  69. package/dist/services/preferences/index.d.mts +2 -2
  70. package/dist/services/preferences/schemas.d.mts +1 -1
  71. package/dist/services/preferences/storage-namespace.d.mts +2 -2
  72. package/dist/services/session/handlers/index.d.mts +1 -1
  73. package/dist/services/session/index.d.mts +2 -2
  74. package/dist/services/settings/namespace.d.mts +2 -2
  75. package/dist/services/subagent-template/index.d.mts +1 -1
  76. package/dist/services/subagent-template/schemas.d.mts +1 -1
  77. package/dist/services/tools/index.mjs +1 -1
  78. package/dist/services/workflow-transitions/index.mjs +1 -1
  79. package/dist/{session-lineage-DZr5w2-z.d.mts → session-lineage-Bjh0Ccu7.d.mts} +1 -1
  80. package/dist/{storage-namespace-Cl8qtHDu.d.mts → storage-namespace-DoxNJ9Cg.d.mts} +10 -10
  81. package/dist/{tools-Cbuj-ClQ.mjs → tools-EK2HiPee.mjs} +1 -1
  82. package/dist/{transition-CzxHvafT.d.mts → transition-yohyGRmc.d.mts} +1 -1
  83. package/dist/ui-kernel/index.d.mts +4 -4
  84. package/dist/ui-kernel/pages/namespace.d.mts +4 -4
  85. package/dist/ui-kernel/pages/schemas.d.mts +1 -1
  86. package/dist/{view-builder-BLdSezFD.d.mts → view-builder-BjVjGZAI.d.mts} +2 -2
  87. package/dist/{worker-toBnRJ0A.mjs → worker-DulBFC0P.mjs} +1 -1
  88. package/dist/{workflow-BDDB6EJi.mjs → workflow-Dvv_8Xu6.mjs} +1 -1
  89. package/dist/workflow-engine/index.d.mts +31 -31
  90. package/dist/{workflow-transitions-CvT6P03B.mjs → workflow-transitions-ztq90FUj.mjs} +1 -1
  91. package/package.json +1 -1
  92. package/dist/artifact-XE82Q2bH.mjs +0 -1
  93. package/dist/bus-B-ksy7YX.mjs +0 -9
  94. package/dist/packages-CZ2x-Ver.mjs +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
- "fingerprint": "021ddb175906c2e6e239354b7bff4312f80ed1aa1c483fedb35b10f95628a3ae",
4
- "builtAt": "2026-09-30T15:46:24.549Z",
3
+ "fingerprint": "10349ae190209ea62ec6197e7cbae26a328e83a4f41f144571eaadf0c51dfc30",
4
+ "builtAt": "2026-10-07T18:15:05.739Z",
5
5
  "declarations": true,
6
6
  "declarationBackend": "tsc"
7
7
  }
@@ -1413,8 +1413,8 @@ declare const SDKMessageSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodD
1413
1413
  web_search_requests: z.ZodNumber;
1414
1414
  }, z.core.$strip>>>;
1415
1415
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
1416
- priority: "priority";
1417
1416
  batch: "batch";
1417
+ priority: "priority";
1418
1418
  standard: "standard";
1419
1419
  }>>>;
1420
1420
  }, z.core.$strip>;
@@ -2021,8 +2021,8 @@ declare const SDKMessageSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodD
2021
2021
  web_search_requests: z.ZodNumber;
2022
2022
  }, z.core.$strip>>;
2023
2023
  service_tier: z.ZodEnum<{
2024
- priority: "priority";
2025
2024
  batch: "batch";
2025
+ priority: "priority";
2026
2026
  standard: "standard";
2027
2027
  }>;
2028
2028
  }, z.core.$strip>;
@@ -2069,8 +2069,8 @@ declare const SDKMessageSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodD
2069
2069
  web_search_requests: z.ZodNumber;
2070
2070
  }, z.core.$strip>>;
2071
2071
  service_tier: z.ZodEnum<{
2072
- priority: "priority";
2073
2072
  batch: "batch";
2073
+ priority: "priority";
2074
2074
  standard: "standard";
2075
2075
  }>;
2076
2076
  }, z.core.$strip>;
@@ -2135,8 +2135,8 @@ declare const SDKMessageSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodD
2135
2135
  web_search_requests: z.ZodNumber;
2136
2136
  }, z.core.$strip>>>;
2137
2137
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2138
- priority: "priority";
2139
2138
  batch: "batch";
2139
+ priority: "priority";
2140
2140
  standard: "standard";
2141
2141
  }>>>;
2142
2142
  }, z.core.$strip>;
@@ -2742,8 +2742,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
2742
2742
  web_search_requests: z.ZodNumber;
2743
2743
  }, z.core.$strip>>>;
2744
2744
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
2745
- priority: "priority";
2746
2745
  batch: "batch";
2746
+ priority: "priority";
2747
2747
  standard: "standard";
2748
2748
  }>>>;
2749
2749
  }, z.core.$strip>;
@@ -3350,8 +3350,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
3350
3350
  web_search_requests: z.ZodNumber;
3351
3351
  }, z.core.$strip>>;
3352
3352
  service_tier: z.ZodEnum<{
3353
- priority: "priority";
3354
3353
  batch: "batch";
3354
+ priority: "priority";
3355
3355
  standard: "standard";
3356
3356
  }>;
3357
3357
  }, z.core.$strip>;
@@ -3398,8 +3398,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
3398
3398
  web_search_requests: z.ZodNumber;
3399
3399
  }, z.core.$strip>>;
3400
3400
  service_tier: z.ZodEnum<{
3401
- priority: "priority";
3402
3401
  batch: "batch";
3402
+ priority: "priority";
3403
3403
  standard: "standard";
3404
3404
  }>;
3405
3405
  }, z.core.$strip>;
@@ -3464,8 +3464,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
3464
3464
  web_search_requests: z.ZodNumber;
3465
3465
  }, z.core.$strip>>>;
3466
3466
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3467
- priority: "priority";
3468
3467
  batch: "batch";
3468
+ priority: "priority";
3469
3469
  standard: "standard";
3470
3470
  }>>>;
3471
3471
  }, z.core.$strip>;
@@ -4033,8 +4033,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
4033
4033
  web_search_requests: z.ZodNumber;
4034
4034
  }, z.core.$strip>>>;
4035
4035
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4036
- priority: "priority";
4037
4036
  batch: "batch";
4037
+ priority: "priority";
4038
4038
  standard: "standard";
4039
4039
  }>>>;
4040
4040
  }, z.core.$strip>;
@@ -4643,8 +4643,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
4643
4643
  web_search_requests: z.ZodNumber;
4644
4644
  }, z.core.$strip>>;
4645
4645
  service_tier: z.ZodEnum<{
4646
- priority: "priority";
4647
4646
  batch: "batch";
4647
+ priority: "priority";
4648
4648
  standard: "standard";
4649
4649
  }>;
4650
4650
  }, z.core.$strip>;
@@ -4691,8 +4691,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
4691
4691
  web_search_requests: z.ZodNumber;
4692
4692
  }, z.core.$strip>>;
4693
4693
  service_tier: z.ZodEnum<{
4694
- priority: "priority";
4695
4694
  batch: "batch";
4695
+ priority: "priority";
4696
4696
  standard: "standard";
4697
4697
  }>;
4698
4698
  }, z.core.$strip>;
@@ -4758,8 +4758,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
4758
4758
  web_search_requests: z.ZodNumber;
4759
4759
  }, z.core.$strip>>>;
4760
4760
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
4761
- priority: "priority";
4762
4761
  batch: "batch";
4762
+ priority: "priority";
4763
4763
  standard: "standard";
4764
4764
  }>>>;
4765
4765
  }, z.core.$strip>;
@@ -5369,8 +5369,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
5369
5369
  web_search_requests: z.ZodNumber;
5370
5370
  }, z.core.$strip>>>;
5371
5371
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
5372
- priority: "priority";
5373
5372
  batch: "batch";
5373
+ priority: "priority";
5374
5374
  standard: "standard";
5375
5375
  }>>>;
5376
5376
  }, z.core.$strip>;
@@ -5977,8 +5977,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
5977
5977
  web_search_requests: z.ZodNumber;
5978
5978
  }, z.core.$strip>>;
5979
5979
  service_tier: z.ZodEnum<{
5980
- priority: "priority";
5981
5980
  batch: "batch";
5981
+ priority: "priority";
5982
5982
  standard: "standard";
5983
5983
  }>;
5984
5984
  }, z.core.$strip>;
@@ -6025,8 +6025,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
6025
6025
  web_search_requests: z.ZodNumber;
6026
6026
  }, z.core.$strip>>;
6027
6027
  service_tier: z.ZodEnum<{
6028
- priority: "priority";
6029
6028
  batch: "batch";
6029
+ priority: "priority";
6030
6030
  standard: "standard";
6031
6031
  }>;
6032
6032
  }, z.core.$strip>;
@@ -6091,8 +6091,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
6091
6091
  web_search_requests: z.ZodNumber;
6092
6092
  }, z.core.$strip>>>;
6093
6093
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6094
- priority: "priority";
6095
6094
  batch: "batch";
6095
+ priority: "priority";
6096
6096
  standard: "standard";
6097
6097
  }>>>;
6098
6098
  }, z.core.$strip>;
@@ -6660,8 +6660,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
6660
6660
  web_search_requests: z.ZodNumber;
6661
6661
  }, z.core.$strip>>>;
6662
6662
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
6663
- priority: "priority";
6664
6663
  batch: "batch";
6664
+ priority: "priority";
6665
6665
  standard: "standard";
6666
6666
  }>>>;
6667
6667
  }, z.core.$strip>;
@@ -7270,8 +7270,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
7270
7270
  web_search_requests: z.ZodNumber;
7271
7271
  }, z.core.$strip>>;
7272
7272
  service_tier: z.ZodEnum<{
7273
- priority: "priority";
7274
7273
  batch: "batch";
7274
+ priority: "priority";
7275
7275
  standard: "standard";
7276
7276
  }>;
7277
7277
  }, z.core.$strip>;
@@ -7318,8 +7318,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
7318
7318
  web_search_requests: z.ZodNumber;
7319
7319
  }, z.core.$strip>>;
7320
7320
  service_tier: z.ZodEnum<{
7321
- priority: "priority";
7322
7321
  batch: "batch";
7322
+ priority: "priority";
7323
7323
  standard: "standard";
7324
7324
  }>;
7325
7325
  }, z.core.$strip>;
@@ -7385,8 +7385,8 @@ declare function createClaudeConnectorNamespace<N extends string>(namespaceName:
7385
7385
  web_search_requests: z.ZodNumber;
7386
7386
  }, z.core.$strip>>>;
7387
7387
  service_tier: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7388
- priority: "priority";
7389
7388
  batch: "batch";
7389
+ priority: "priority";
7390
7390
  standard: "standard";
7391
7391
  }>>>;
7392
7392
  }, z.core.$strip>;
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-DTipWd-i.mjs";import{n as t,o as n,s as r}from"./json-value-DM-EjTC1.mjs";import{S as i,T as a,_ as o,a as s,c,d as l,i as u,l as d,n as ee,p as te,r as ne,t as re,u as ie,w as f,x as ae,y as oe}from"./schemas-uNzmiLso.mjs";import{C as se,M as ce,a as le,d as p,h as ue,k as de,r as fe,s as m,t as h,x as pe}from"./kind-registration-CdjmVxY_.mjs";import{t as me}from"./zod-json-schema-ZUmGtQhT.mjs";import{t as he}from"./ajv-Cvnmw2yn.mjs";import{t as ge}from"./2020-CRfgqanb.mjs";import{t as _e}from"./dist-onY7e-pd.mjs";import{z as g}from"zod";import{createBusNamespace as ve}from"@makaio/framework/core";const ye=g.strictObject({evidence:f}),_=g.strictObject({kind:g.literal(`text`),text:g.string()}),[be,xe,Se]=f.options,Ce=g.union([be.pick({source:!0,location:!0}).extend({content:_}),xe.pick({source:!0,location:!0}).extend({content:_}),Se.pick({source:!0,location:!0}).extend({content:_})]);function v(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function y(e){return e.replaceAll(`~`,`~0`).replaceAll(`/`,`~1`)}function we(e,t){if(t===`#`)return{node:e,pointer:``};if(!t.startsWith(`#/`))return;let n;try{n=decodeURIComponent(t.slice(1))}catch{return}let r=e;for(let e of n.slice(1).split(`/`)){let t=e.replaceAll(`~1`,`/`).replaceAll(`~0`,`~`);if(Array.isArray(r)){if(!/^(0|[1-9]\d*)$/.test(t)||Number(t)>=r.length)return;r=r[Number(t)]}else{let e=v(r);if(!e||!Object.hasOwn(e,t))return;r=e[t]}}let i=typeof r==`boolean`?r:v(r);return i===void 0?void 0:{node:i,pointer:n}}function b(e,t){if(t===``)return!1;let n=e;for(let e of t.slice(1).split(`/`)){let t=e.replaceAll(`~1`,`/`).replaceAll(`~0`,`~`);if(n=Array.isArray(n)?n[Number(t)]:v(n)?.[t],typeof v(n)?.$id==`string`)return!0}return!1}function Te(e,t,n){if(e[`x-makaio-value-type`]!==`evidence/v1`)return;let r=f.safeParse(t);if(!r.success)throw Error(`Invalid schema-declared evidence at ${n}`);return{evidence:r.data,dataPath:n}}function Ee(e,t,n,r){if(typeof t.$ref!=`string`)return!1;if(r)return!0;let i=we(e,t.$ref);return i===void 0?!0:typeof i.node!=`boolean`&&x(e,i.node,n,b(e,i.pointer))}function x(e,t,n=new WeakSet,r=!1){let i=v(t);if(!i||n.has(i))return!1;n.add(i);let a=r||i!==e&&typeof i.$id==`string`;if(i[`x-makaio-value-type`]===`evidence/v1`||typeof i.$dynamicRef==`string`||Ee(e,i,n,a)||[`additionalItems`,`additionalProperties`,`contains`,`else`,`if`,`items`,`then`,`unevaluatedItems`,`unevaluatedProperties`].some(t=>x(e,i[t],n,a))||[`allOf`,`anyOf`,`oneOf`,`prefixItems`].some(t=>Array.isArray(i[t])&&i[t].some(t=>x(e,t,n,a)))||Array.isArray(i.items)&&i.items.some(t=>x(e,t,n,a)))return!0;for(let t of[`dependentSchemas`,`dependencies`,`patternProperties`,`properties`]){let r=v(i[t]);if(r&&Object.values(r).some(t=>x(e,t,n,a)))return!0}return!1}var De=class{dataSchema;matchesSchema;occurrences=new Map;visited=new WeakMap;constructor(e,t){this.dataSchema=e,this.matchesSchema=t}extract(e){return this.visit(this.dataSchema,e,`/data`),[...this.occurrences.values()]}visit(e,t,n,r=``){let i=this.visited.get(e)??new Set;if(i.has(n))return;if(i.add(n),this.visited.set(e,i),typeof e.$dynamicRef==`string`)throw Error(`Evidence discovery does not support active $dynamicRef at ${n}`);if(typeof e.$ref==`string`){if(b(this.dataSchema,r))throw Error(`Evidence discovery does not support local $ref inside nested $id resource at ${n}`);let i=we(this.dataSchema,e.$ref);if(i===void 0)throw Error(`Cannot resolve local schema reference ${e.$ref} at ${n}`);if(typeof i.node!=`boolean`&&this.visit(i.node,t,n,i.pointer),this.dataSchema.$schema!==`https://json-schema.org/draft/2020-12/schema`)return}let a=Te(e,t,n);if(a){this.occurrences.set(n,a);return}this.visitCombiners(e,t,n,r),this.visitConditional(e,t,n,r),this.visitDependencies(e,t,n,r),this.assertSupportedApplicators(e,n,r),Array.isArray(t)?this.visitArray(e,t,n,r):typeof t==`object`&&t&&this.visitObject(e,t,n,r)}visitCombiners(e,t,n,r){for(let i of[`allOf`,`anyOf`,`oneOf`]){let a=e[i];if(Array.isArray(a))for(let[e,o]of a.entries()){let a=v(o),s=`${r}/${i}/${e}`;a&&(i===`allOf`||this.matchesSchema(this.dataSchema,s,t))&&this.visit(a,t,n,s)}}}visitConditional(e,t,n,r){let i=typeof e.if==`boolean`?e.if:v(e.if);if(i===void 0)return;let a=`${r}/if`,o=this.matchesSchema(this.dataSchema,a,t);o&&typeof i!=`boolean`&&this.visit(i,t,n,a);let s=o?`then`:`else`,c=v(e[s]);c&&this.visit(c,t,n,`${r}/${s}`)}visitDependencies(e,t,n,r){if(!(typeof t!=`object`||!t||Array.isArray(t)))for(let i of[`dependentSchemas`,`dependencies`]){let a=v(e[i]);if(a)for(let[e,o]of Object.entries(a)){let a=v(o);Object.hasOwn(t,e)&&a&&this.visit(a,t,n,`${r}/${i}/${y(e)}`)}}}assertSupportedApplicators(e,t,n){for(let r of[`unevaluatedProperties`,`unevaluatedItems`])if(x(this.dataSchema,e[r],void 0,b(this.dataSchema,n)))throw Error(`Evidence under unsupported ${r} applicator at ${t}`)}visitArray(e,t,n,r){let i=Array.isArray(e.prefixItems),a=i?e.prefixItems:Array.isArray(e.items)?e.items:[];a.forEach((e,a)=>{let o=v(e),s=i?`prefixItems`:`items`;o&&a<t.length&&this.visit(o,t[a],`${n}/${a}`,`${r}/${s}/${a}`)});let o=Array.isArray(e.items)?v(e.additionalItems):v(e.items);if(o){let i=Array.isArray(e.items)?`additionalItems`:`items`;t.slice(a.length).forEach((e,t)=>this.visit(o,e,`${n}/${a.length+t}`,`${r}/${i}`))}this.visitContains(e,t,n,r)}visitContains(e,t,n,r){let i=v(e.contains);if(!i)return;let a=`${r}/contains`;t.forEach((e,t)=>{this.matchesSchema(this.dataSchema,a,e)&&this.visit(i,e,`${n}/${t}`,a)})}visitObject(e,t,n,r){let i=v(e.properties),a=v(e.patternProperties);for(let[o,s]of Object.entries(t)){let t=y(o),c=i!==void 0&&Object.hasOwn(i,o),l=v(i?.[o]);l&&this.visit(l,s,`${n}/${t}`,`${r}/properties/${t}`);let u=this.visitPatterns(a,o,s,`${n}/${t}`,r),d=v(e.additionalProperties);!c&&!u&&d&&this.visit(d,s,`${n}/${t}`,`${r}/additionalProperties`)}}visitPatterns(e,t,n,r,i){let a=!1;for(let[o,s]of Object.entries(e??{})){if(!new RegExp(o,`u`).test(t))continue;a=!0;let e=v(s);e&&this.visit(e,n,r,`${i}/patternProperties/${y(o)}`)}return a}};function Oe(e,t,n){return new De(e,n.matchesSchema).extract(t)}function ke(e){let{dataSchema:t,hooks:n,...r}=e,i={$schema:`https://json-schema.org/draft/2020-12/schema`,...me(t)};de(i);let a=le.parse({...r,dataSchema:i});if(a.kind!==e.kind)throw Error(`Artifact kind identifiers must not contain surrounding whitespace`);let o=g.fromJSONSchema(a.dataSchema),s=g.unknown().superRefine((e,t)=>{let n=o.safeParse(e);if(!n.success)for(let e of n.error.issues)t.addIssue({code:`custom`,path:e.path,message:e.message})}).pipe(t).superRefine((e,t)=>{Object.hasOwn(e,`slug`)&&t.addIssue({code:`custom`,path:[pe],message:se});try{ce(e,a.titlePath)}catch(e){t.addIssue({code:`custom`,path:a.titlePath.split(`.`),message:e instanceof Error?e.message:`Artifact title must be a nonblank string`})}});return{...structuredClone(a),kind:e.kind,schemaVersion:e.schemaVersion,dataSchema:s,...n?{hooks:n}:{},toRegistration:()=>structuredClone(a)}}var Ae=e(he(),1),je=e(ge(),1),Me=e(_e(),1);function Ne(e){let t={allErrors:!0,strict:!1,strictSchema:!0},n=e.dataSchema.$schema===`https://json-schema.org/draft/2020-12/schema`?new je.default(t):new Ae.default(t);return(0,Me.default)(n),n.addKeyword({keyword:i,schemaType:`string`,valid:!0}),n.compile(e.dataSchema)}function Pe(e){return e.replace(/~1/gu,`/`).replace(/~0/gu,`~`)}function Fe(e){let t=e.instancePath.split(`/`).slice(1).map(Pe),n=e.keyword===`required`?e.params.missingProperty:e.params.additionalProperty;return typeof n==`string`&&(e.keyword===`required`||e.keyword===`additionalProperties`)&&t.push(n),t.join(`.`)}function Ie(e){if(e.keyword!==`type`)return;let t=e.params.type;if(typeof t==`string`)return t;if(Array.isArray(t)&&t.every(e=>typeof e==`string`))return t.join(` | `)}const Le=n.array();function Re(e){if(e.keyword!==`enum`)return;let t=Le.safeParse(e.params.allowedValues);return t.success?t.data:void 0}function ze(e){return(e??[]).map(e=>{let t=Ie(e),n=Re(e);return{path:Fe(e),reason:e.message??`violates ${e.keyword}`,...t===void 0?{}:{expectedType:t},...n===void 0?{}:{allowedValues:n}}})}function Be(e){return typeof e==`object`&&!!e&&Object.hasOwn(e,`slug`)}const Ve={path:pe,reason:se};function He(e){let t=Ne(e);return e=>t(e)&&!Be(e)}function Ue(e){let t=Ne(e);return e=>{let n=t(e)?[]:ze(t.errors);return Be(e)&&n.push(Ve),n.length===0?{valid:!0}:{valid:!1,issues:n}}}function We(e){return{hooks:[...e.hooks]}}const Ge=[`inline`,`summary`,`link`,`omit`],Ke=[`outbound`,`inbound`],S=g.string().min(1),C=g.enum(Ke),qe=g.object({kinds:g.array(g.string().min(1)).optional(),hint:S.optional(),depth:g.number().int().min(1).max(20).optional(),nested:g.lazy(()=>w).optional(),direction:C.optional()}),w=g.record(g.string().min(1),qe);function T(e){return JSON.stringify([e.kind,e.id,e.revision])}const Je=g.enum([`not-selected`,`not-found`,`depth-exceeded`,`unsupported-ref-class`,`cycle-detected`]),Ye=g.object({target:d,sourceRef:a,relationType:g.string().min(1),sourceLocalId:c.shape.sourceLocalId,direction:C.optional(),hint:S,status:g.enum([`resolved`,`unresolved`]),reason:Je.optional()}).superRefine((e,t)=>{e.status===`unresolved`&&e.reason===void 0&&t.addIssue({code:g.ZodIssueCode.custom,path:[`reason`],message:`reason is required for unresolved artifact context refs`}),e.status===`resolved`&&e.reason!==void 0&&t.addIssue({code:g.ZodIssueCode.custom,path:[`reason`],message:`reason must be omitted for resolved artifact context refs`}),e.status===`resolved`&&e.target.refClass!==`artifact`&&t.addIssue({code:g.ZodIssueCode.custom,path:[`target`],message:`resolved artifact context refs must target an artifact revision`})}),E=g.object({rootRef:a,refs:g.array(Ye),resolved:g.array(l)}).superRefine((e,t)=>{let n=new Set(e.resolved.map(T));n.has(T(e.rootRef))||t.addIssue({code:g.ZodIssueCode.custom,path:[`resolved`],message:`resolved artifact context wire payloads must include the root artifact revision`}),e.refs.forEach((e,r)=>{n.has(T(e.sourceRef))||t.addIssue({code:g.ZodIssueCode.custom,path:[`refs`,r,`sourceRef`],message:`artifact context ref sources must have a matching revision in resolved`}),!(e.status!==`resolved`||e.target.refClass!==`artifact`)&&(n.has(T(e.target))||t.addIssue({code:g.ZodIssueCode.custom,path:[`refs`,r,`target`],message:`resolved artifact context refs must have a matching revision in resolved`}))})});function Xe(e){let t=E.parse(e),n=new Map(t.resolved.map(e=>[T(e),e])),r=new Map;for(let e of t.refs){let t=T(e.sourceRef),n=r.get(t);n||(n=[],r.set(t,n)),n.push(e)}let i=n.get(T(t.rootRef));if(!i)throw Error(`Resolved artifact context is missing root artifact '${T(t.rootRef)}'`);let a=Ze(t.rootRef,i,`inline`,r,n);return{root:a,flatten(){let e=[];return et(a,e),e}}}function Ze(e,t,n,r,i){return{status:`resolved`,ref:e,artifact:t,hint:n,children:$e(e,r,i,new Set([T(e)]))}}function Qe(e,t,n,r,i,a,o,s,c){let l=T(e),u=new Set(c);return u.add(l),{status:`resolved`,ref:e,artifact:t,relation:n,sourceLocalId:r,direction:i,hint:a,children:$e(e,o,s,u)}}function $e(e,t,n,r){return(t.get(T(e))??[]).map(e=>{if(e.status===`unresolved`)return{status:`unresolved`,target:e.target,relation:e.relationType,sourceLocalId:e.sourceLocalId,direction:e.direction,hint:e.hint,reason:e.reason};if(e.target.refClass!==`artifact`)throw Error(`Resolved artifact context refs must target an artifact revision`);let i=T(e.target),a=n.get(i);if(!a)throw Error(`Resolved artifact context is missing target artifact '${i}'`);return r.has(i)?{status:`unresolved`,target:e.target,relation:e.relationType,sourceLocalId:e.sourceLocalId,direction:e.direction,hint:e.hint,reason:`cycle-detected`}:Qe(e.target,a,e.relationType,e.sourceLocalId,e.direction,e.hint,t,n,r)})}function et(e,t){if(e.status!==`unresolved`){t.push(e.artifact);for(let n of e.children)et(n,t)}}const D=[`$set`,`$unset`,`$push`,`$pull`],O=`[A-Za-z_$][A-Za-z0-9_$]*`,k=`[A-Za-z_$][A-Za-z0-9_$-]*`,tt=`(?:0|[1-9][0-9]*)`,nt=`(?:${`\\$\\[${O}\\]`}|${tt}|${k})`,rt=RegExp(`^${k}(?:\\.${nt})*$`),it=RegExp(`^${O}(?:\\.${k})*$`),at=RegExp(`^${tt}$`),ot=RegExp(`^\\$\\[(${O})\\]$`),A=g.string().regex(rt,`Expected a data-relative path of object properties, array positions, or $[filter] placeholders`);function st(e){let t=ot.exec(e);return t?.[1]===void 0?at.test(e)?{kind:`index`,index:Number(e)}:{kind:`property`,name:e}:{kind:`filter`,placeholder:t[1]}}function ct(e){return e.split(`.`).map(st)}function lt(e){return ct(e).flatMap(e=>e.kind===`filter`?[e.placeholder]:[])}const ut=r(g.record(g.string().regex(it,`Expected a filter key of the form name or name.field.path`),n),{prototypeKey:`an array filter cannot compare a __proto__ key, which JSON transport drops`,nonPlainObject:`an array filter must be a plain object of comparison keys`,symbolKey:`an array filter cannot carry symbol-keyed comparisons`,nonEnumerableKey:`an array filter cannot carry non-enumerable comparison keys`,extraArrayKey:`an array filter must be a plain object, not an array`});function dt(e){let t=new Set(Object.keys(e).map(e=>e.split(`.`)[0]));if(t.size!==1)return;let[n]=t;return n!==void 0&&n.length>0?n:void 0}function j(e,t){return r(g.record(A,t),{prototypeKey:`${e} cannot address __proto__, which JSON transport drops`,nonPlainObject:`${e} must be a plain object of path instructions`,symbolKey:`${e} cannot carry symbol-keyed instructions`,nonEnumerableKey:`${e} cannot carry non-enumerable instructions`,extraArrayKey:`${e} must be a plain object, not an array`})}const ft=g.literal(!0),pt=g.strictObject({$set:j(`$set`,n).optional(),$unset:j(`$unset`,ft).optional(),$push:j(`$push`,n).optional(),$pull:j(`$pull`,n).optional(),arrayFilters:g.array(ut).optional()});function M(e){return D.flatMap(t=>Object.entries(e[t]??{}).map(([e,n])=>({operator:t,path:e,value:n})))}function mt(e,t){let n=M(e),r=new Map;(e.arrayFilters??[]).forEach((e,n)=>{let i=dt(e);if(i===void 0){t.addIssue({code:`custom`,path:[`arrayFilters`,n],message:`An array filter must bind exactly one placeholder name across all of its keys`});return}if(r.has(i)){t.addIssue({code:`custom`,path:[`arrayFilters`,n],message:`Array filter placeholder ${i} is already bound by another filter`});return}r.set(i,n)});let i=new Set;for(let{operator:e,path:a}of n)for(let n of lt(a))i.add(n),r.has(n)||t.addIssue({code:`custom`,path:[e,a],message:`Path uses placeholder $[${n}] without a matching entry in arrayFilters`});for(let[e,n]of r)i.has(e)||t.addIssue({code:`custom`,path:[`arrayFilters`,n],message:`Array filter binds placeholder ${e}, which no path uses`})}const ht=pt.superRefine(mt).superRefine((e,t)=>{M(e).length===0&&t.addIssue({code:`custom`,message:`Declare at least one of ${D.join(`, `)}`})}),gt=pt.superRefine(mt),_t=g.strictObject({kind:a.shape.kind,id:a.shape.id}),vt=g.strictObject({ref:_t,baseRevision:a.shape.revision,patch:gt,dryRun:g.boolean().optional(),schemaVersion:p.optional().describe(`Target schema version for the patched revision; defaults to the base revision's. Use it to migrate an artifact left at an older version by a kind bump.`),statusPath:te.optional(),representations:ie.strict().nullable().optional().describe(`Rendering hints (markdown, summary, plaintext) for the new revision. Omit to keep the previous revision's hints. An object replaces all of them, it does not merge: send every hint you want to keep. null clears them.`)}).superRefine((e,t)=>{e.schemaVersion===void 0&&M(e.patch).length===0&&t.addIssue({code:`custom`,path:[`patch`],message:`Declare at least one of ${D.join(`, `)}, or name a schemaVersion to migrate a payload that already fits`})}),yt=[`ARTIFACT_NOT_FOUND`,`BASE_REVISION_CONFLICT`,`KIND_NOT_REGISTERED`,`SCHEMA_VERSION_MISMATCH`,`PATH_NOT_DECLARED`,`PATH_NOT_RESOLVABLE`,`TARGET_NOT_A_COLLECTION`,`UNSUPPORTED_TARGET`,`NO_MATCH`,`SCHEMA_VALIDATION_FAILED`,`PAYLOAD_INVARIANT_FAILED`,`NO_CHANGE`,`STORE_REJECTED`,`HOST_FAILED`],bt=g.strictObject({path:g.string(),reason:g.string().min(1),expectedType:g.string().min(1).optional(),allowedValues:g.array(n).optional()}),xt=g.strictObject({code:g.enum(yt),message:g.string().min(1),operator:g.enum(D).optional(),path:A.optional(),currentRevision:a.shape.revision.optional(),issues:g.array(bt).optional(),repair:g.string().min(1)}).superRefine((e,t)=>{e.code===`BASE_REVISION_CONFLICT`&&e.currentRevision===void 0&&t.addIssue({code:g.ZodIssueCode.custom,message:`A BASE_REVISION_CONFLICT must name the revision the artifact carries.`,path:[`currentRevision`]})}),St=g.strictObject({operator:g.enum(D),path:A,matched:g.number().int().positive()}),Ct=g.strictObject({from:p,to:p}).refine(e=>e.to>e.from,{path:[`to`],message:`A migration moves the artifact forward to a newer schema version`}),wt=g.strictObject({ok:g.literal(!0),base:a,operations:g.array(St),migration:Ct.optional()});function Tt(e,t){e.operations.length===0&&e.migration===void 0&&t.addIssue({code:`custom`,path:[`operations`],message:`A success without a migration must report at least one applied instruction`})}const Et=wt.extend({dryRun:g.literal(!0)}).superRefine(Tt),Dt=wt.extend({dryRun:g.literal(!1),artifact:a}).superRefine(Tt),Ot=g.discriminatedUnion(`dryRun`,[Et,Dt]),kt=g.strictObject({ok:g.literal(!1),error:xt}),At=g.union([Ot,kt]),jt=g.object({ref:oe}),Mt=g.union([g.strictObject({ok:g.literal(!0),ref:oe,areaPath:fe,part:t}),g.strictObject({ok:g.literal(!1),error:ue})]),N=a.pick({kind:!0,id:!0}),P=g.number().int().positive(),F=P,I={knowledge:`valid`,commitment:`proposed`,interaction:`open`},L=g.discriminatedUnion(`category`,[g.strictObject({category:g.literal(`knowledge`),state:g.enum(h.knowledge),version:F}),g.strictObject({category:g.literal(`commitment`),state:g.enum(h.commitment),version:F}),g.strictObject({category:g.literal(`interaction`),state:g.enum(h.interaction),version:F})]).superRefine((e,t)=>{e.version===1&&e.state!==I[e.category]&&t.addIssue({code:`custom`,path:[`state`],message:`Lifecycle version 1 is reserved for the category initial state`})}),R=g.union([L,g.strictObject({category:g.literal(`record`)})]),z=g.string().trim().min(1),Nt=g.strictObject({kind:z,ref:z}),B=g.discriminatedUnion(`kind`,[g.strictObject({kind:g.literal(`revision-assessment`),assessedRevision:a.shape.revision,source:Nt.optional()}),g.strictObject({kind:g.literal(`handover`),source:Nt})]),Pt={artifact:N,expectedVersion:F,state:m,situation:B,reason:z.optional()},V=g.strictObject(Pt),Ft=g.strictObject({...Pt,actor:re}),It={valid:[`retired`],retired:[`valid`],proposed:[`decided`],decided:[`fulfilled`,`revoked`],fulfilled:[],revoked:[],open:[`resolved`,`closed-without-resolution`],resolved:[],"closed-without-resolution":[]};function H(e,t){return It[e].includes(t)}const Lt={artifact:N,lifecycle:L,actor:re,timestamp:g.number().int().nonnegative(),observedRevision:a.shape.revision},Rt=g.strictObject({...Lt,operation:g.literal(`initialized`)}).superRefine((e,t)=>{(e.lifecycle.version!==1||e.lifecycle.state!==I[e.lifecycle.category])&&t.addIssue({code:`custom`,path:[`lifecycle`],message:`Initialization requires the category initial state and version 1`})});function zt(e,t){return t===`retired`||e===`retired`&&t===`valid`}const Bt=`Retiring or reinstating knowledge requires a reason`,U=g.strictObject({...Lt,operation:g.literal(`transitioned`),previousState:m,situation:B,reason:V.shape.reason}).superRefine((e,t)=>{(!H(e.previousState,e.lifecycle.state)||e.lifecycle.version<=1)&&t.addIssue({code:`custom`,path:[`lifecycle`],message:`History requires a category-compatible transition after initialization`}),zt(e.previousState,e.lifecycle.state)&&!e.reason&&t.addIssue({code:`custom`,path:[`reason`],message:Bt}),e.situation.kind===`revision-assessment`&&e.situation.assessedRevision!==e.observedRevision&&t.addIssue({code:`custom`,path:[`situation`],message:`An assessment cannot authorize a different observed content revision`})}),Vt=g.discriminatedUnion(`operation`,[Rt,U]),W=g.discriminatedUnion(`reason`,[g.strictObject({reason:g.literal(`lifecycle-version-conflict`),expectedVersion:F,current:L,requestedState:m}),g.strictObject({reason:g.literal(`content-basis-conflict`),assessedRevision:a.shape.revision,currentRevision:a.shape.revision}),g.strictObject({reason:g.literal(`invalid-transition`),current:R,requestedState:m}),g.strictObject({reason:g.literal(`precondition-failed`),current:L,requestedState:m})]),G=`artifact-lifecycle-rejected`;var K=class extends Error{code=G;data;constructor(e,t){super(e),this.name=`ArtifactLifecycleError`,this.data=W.parse(t)}};function Ht(e){return e===`record`?{category:`record`}:L.parse({category:e,state:I[e],version:1})}function Ut(e){let t=R.parse(e.current),n=a.shape.revision.parse(e.currentRevision),r=Ft.parse(e.command);if(t.category===`record`)throw new K(`Record artifacts do not have a lifecycle`,{reason:`invalid-transition`,current:t,requestedState:r.state});if(r.expectedVersion!==t.version)throw new K(`Artifact lifecycle changed since the supplied baseline`,{reason:`lifecycle-version-conflict`,expectedVersion:r.expectedVersion,current:t,requestedState:r.state});if(r.situation.kind===`revision-assessment`&&r.situation.assessedRevision!==n)throw new K(`Assessed content revision is no longer current`,{reason:`content-basis-conflict`,assessedRevision:r.situation.assessedRevision,currentRevision:n});if(!H(t.state,r.state))throw new K(`Artifact lifecycle transition is not allowed`,{reason:`invalid-transition`,current:t,requestedState:r.state});if(zt(t.state,r.state)&&!r.reason)throw new K(Bt,{reason:`precondition-failed`,current:t,requestedState:r.state});return L.parse({...t,state:r.state,version:t.version+1})}const Wt=g.strictObject({artifact:N}),Gt=g.strictObject({lifecycle:R}),Kt=g.strictObject({artifact:N,afterVersion:P.optional(),limit:g.number().int().min(1).max(100).default(50)}),qt=g.strictObject({entries:g.array(Vt).max(100),nextCursor:P.optional()}).superRefine(({entries:e,nextCursor:t},n)=>{let r=e[0],i;for(let[t,a]of e.entries()){let e=a.artifact.kind===r?.artifact.kind&&a.artifact.id===r?.artifact.id,o=i===void 0||a.lifecycle.version===i.lifecycle.version+1,s=i===void 0||a.operation===`transitioned`&&a.lifecycle.category===i.lifecycle.category&&a.previousState===i.lifecycle.state;if(!e||!o||!s){n.addIssue({code:`custom`,path:[`entries`,t],message:`History pages contain one artifact in contiguous ascending, state-linked order`});break}i=a}t!==void 0&&t!==i?.lifecycle.version&&n.addIssue({code:`custom`,path:[`nextCursor`],message:`nextCursor must equal the last returned lifecycle version`})}),q=g.strictObject({entry:U}),Jt=q,Yt=g.strictObject({code:g.literal(G),message:g.string().min(1),data:W});function Xt(e){return{code:e.code,message:e.message,data:e.data}}function Zt(e,t){switch(t.reason){case`content-basis-conflict`:return en(e,t);case`lifecycle-version-conflict`:return[...Qt(e,t),...$t(e,t)];case`invalid-transition`:case`precondition-failed`:return[...Qt(e,t),...tn(e,t)]}}function Qt(e,t){return t.requestedState===e.state?[]:[{path:[`requestedState`],message:`Rejection requestedState must match the rejected transition`}]}function $t(e,t){let n=[];return t.expectedVersion!==e.expectedVersion&&n.push({path:[`expectedVersion`],message:`Version conflict baseline must match the rejected transition`}),t.current.version===e.expectedVersion&&n.push({path:[`current`,`version`],message:`Version conflict requires a current version different from the supplied baseline`}),n}function en(e,t){let n=[];return(e.situation.kind!==`revision-assessment`||t.assessedRevision!==e.situation.assessedRevision)&&n.push({path:[`assessedRevision`],message:`Content conflict must identify the rejected revision assessment`}),t.currentRevision===t.assessedRevision&&n.push({path:[`currentRevision`],message:`Content conflict requires a current revision different from the assessed revision`}),n}function tn(e,t){if(t.current.category===`record`)return[];let n=[];t.current.version!==e.expectedVersion&&n.push({path:[`current`,`version`],message:`A rejection after the version check must report the supplied baseline version`});let r=H(t.current.state,t.requestedState);return t.reason===`invalid-transition`&&r&&n.push({path:[`reason`],message:`invalid-transition requires a transition the lifecycle matrix disallows`}),t.reason===`precondition-failed`&&!r&&n.push({path:[`reason`],message:`precondition-failed requires a transition the lifecycle matrix allows`}),n}const nn=g.strictObject({transition:V,error:Yt}).superRefine(({transition:e,error:t},n)=>{for(let r of Zt(e,t.data))n.addIssue({code:`custom`,path:[`error`,`data`,...r.path],message:r.message})}),rn={"lifecycle.get":{request:Wt,response:Gt},"lifecycle.history":{request:Kt,response:qt},"lifecycle.transition":{request:V,response:q},"lifecycle.committed":Jt,"lifecycle.rejected":nn},an=l.omit({id:!0,slug:!0,revision:!0,timestamp:!0}),on={...rn,"kind.register":{request:le,response:g.object({registered:g.boolean()})},"kind.list":{request:g.object({kind:g.string().min(1).optional()}),response:g.object({kinds:g.array(le)})},"relation-type.register":{request:ae,response:g.object({registered:g.boolean()})},"relation-type.list":{request:g.object({type:g.string().min(1).optional()}),response:g.object({relationTypes:g.array(ae)})},create:{request:an.extend({id:a.shape.id.optional(),slug:l.shape.slug.optional()}),response:g.object({artifact:l})},revise:{request:g.object({previous:a,statusPath:te.optional(),revision:an}),response:g.object({artifact:l})},patch:{request:vt,response:At},resolve:{request:g.object({ref:a}),response:g.object({artifact:l.nullable()})},resolvePart:{request:jt,response:Mt},query:{request:s,response:g.object({artifacts:g.array(l)})},compare:{request:ee,response:ne},"evidence.resolve":{request:ye,response:Ce},resolveContext:{request:g.object({ref:a,selectors:w.optional(),maxDepth:g.number().int().min(1).max(20).default(5)}),response:g.object({context:E})},created:g.object({artifact:l}),revised:g.object({previous:a,artifact:l}),"relation.added":g.object({artifact:a,relation:c}),"observation.added":g.object({artifact:a,observation:u}),"status.changed":g.object({artifact:a,path:g.string().min(1),previous:g.unknown().optional(),current:g.unknown().optional()}),"kind.changed":g.object({kind:g.string().min(1),schemaVersion:p})},sn=ve(`artifact`,on),cn=sn.subjects,ln=g.discriminatedUnion(`refClass`,[a.omit({revision:!0}),o]);function J(e){if(e.refClass===`artifact`)return{refClass:`artifact`,kind:e.kind,id:e.id};if(e.refClass===`entity`)return{refClass:`entity`,entityType:e.entityType,id:e.id}}function Y(e){return e.refClass===`artifact`?JSON.stringify([`artifact`,e.kind,e.id]):JSON.stringify([`entity`,e.entityType,e.id])}function un(e){return e.refClass===`artifact`?`artifact:${e.kind}/${e.id}`:`entity:${e.entityType}/${e.id}`}const dn=[`relation-target`,`data`];function fn(e,t){if(!e||e.length===0)return{ok:!0,rules:[]};let n=[];for(let[r,i]of e.entries()){for(let[e,a]of i.by.entries())(!dn.includes(a.kind)||!t.includes(a.kind))&&n.push({ruleIndex:r,selectorIndex:e,capability:a.kind,message:`rule #${r}, selector #${e}: '${a.kind}' selectors are not supported`});i.lifecycleStates!==void 0&&!t.includes(`lifecycle-states`)&&n.push({ruleIndex:r,capability:`lifecycle-states`,message:`rule #${r}: lifecycleStates is declared but 'lifecycle-states' is not a supported capability`})}return n.length>0?{ok:!1,issues:n}:{ok:!0,rules:e}}function pn(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n||Array.isArray(n)||!Object.hasOwn(n,e))return;n=Reflect.get(n,e)}return{value:n}}function mn(e,t,n,r){let{path:i}=e,a=pn(t,i);if(a===void 0||a.value===null||a.value===void 0)return{ruleIndex:n,selectorIndex:r,reason:`missing-value`,dataPath:i,message:`rule #${n}, selector #${r}, data path '${i}': no value found`};let{value:o}=a;return typeof o!=`string`&&typeof o!=`number`&&typeof o!=`boolean`?{ruleIndex:n,selectorIndex:r,reason:`unsupported-value-type`,dataPath:i,message:`rule #${n}, selector #${r}, data path '${i}': value must be a scalar (string, number, or boolean)`}:{path:i,value:o}}function hn(e,t,n,r,i){if(e.kind===`data`)return mn(e,n,r,i);let{relationType:a}=e,o=t.filter(e=>e.type===a&&e.sourceLocalId===void 0),s=new Set,c,l;for(let e of o){let t=J(e.target);if(t===void 0){l=e.target.refClass;break}s.add(Y(t)),c=t}return l===void 0?c===void 0?{ruleIndex:r,selectorIndex:i,reason:`missing-target`,relationType:a,message:`rule #${r}, selector #${i}, relation '${a}': no relations of this type found`}:s.size>1?{ruleIndex:r,selectorIndex:i,reason:`ambiguous-target`,relationType:a,message:`rule #${r}, selector #${i}, relation '${a}': ${s.size} distinct targets; expected exactly one`}:{type:a,target:c}:{ruleIndex:r,selectorIndex:i,reason:`unsupported-target`,relationType:a,message:`rule #${r}, selector #${i}, relation '${a}': found a relation with refClass '${l}'; only artifact and entity targets are supported`}}function gn(e){return`target`in e?[`relation-target`,e.type,Y(e.target)]:[`data`,e.path,e.value]}function _n(e,t,n){let r=[],i=[];for(let[a,o]of e.entries()){let e=o.by.map((e,r)=>hn(e,t,n,a,r)),s=e.filter(e=>`reason`in e);if(s.length>0){i.push(...s);continue}let c=e.filter(e=>!(`reason`in e)),l=JSON.stringify(c.map(e=>gn(e)));r.push({rule:o,ruleIndex:a,parts:c,serialized:l})}return{keys:r,issues:i}}function vn(e){return e.parts.map(e=>`target`in e?`${e.type} → ${un(e.target)}`:`${e.path} → ${JSON.stringify(e.value)}`).join(`; `)}function yn(e,t,n){let r=[];for(let[i,a]of(e??[]).entries()){if(!bn(a,n))continue;let e=xn(a,t);e<a.minItems&&r.push({index:i,requirement:a,reason:`below-min-items`,count:e}),a.maxItems!==void 0&&e>a.maxItems&&r.push({index:i,requirement:a,reason:`above-max-items`,count:e})}return r}function bn(e,t){return e.when===void 0?!0:pn(t,e.when.path)?.value===e.when.equals}function xn(e,t){let n=new Set;for(let r of t){if(r.sourceLocalId!==void 0||r.type!==e.relationType)continue;let t=J(r.target);t?.refClass===`artifact`&&(e.targetKinds?.length&&!e.targetKinds.includes(t.kind)||n.add(Y(t)))}return n.size}var X=class extends Error{type;field;constructor(e,t,n,r){super(`Relation type '${e}' is already registered with different ${t} (existing: '${n}', new: '${r}')`),this.name=`RelationTypeConflictError`,this.type=e,this.field=t}};function Sn(e){return{...e.sourceKinds===void 0?{}:{sourceKinds:e.sourceKinds},...e.targetKinds===void 0?{}:{targetKinds:e.targetKinds},...e.targetRefClasses===void 0?{}:{targetRefClasses:e.targetRefClasses}}}function Z(e){return e.endpoints??[Sn(e)]}function Q(e,t){return e===void 0?!0:t!==void 0&&e.includes(t)}function Cn(e,t){return Q(e.sourceKinds,t.sourceKind)&&Q(e.targetKinds,t.targetKind)&&Q(e.targetRefClasses,t.targetRefClass)}function wn(e,t){let n=e.implication===void 0||e.implication===e.type;if(!(e.symmetry!==`symmetric`||!n||t.targetRefClass!==`artifact`||t.targetKind===void 0))return{sourceKind:t.targetKind,targetRefClass:`artifact`,targetKind:t.sourceKind}}function Tn(e,t){let n=wn(e,t);return Z(e).some(e=>Cn(e,t)||n!==void 0&&Cn(e,n))}function $(e){return e===void 0?void 0:[...new Set(e)].sort()}function En(e){return Sn({sourceKinds:$(e.sourceKinds),targetKinds:$(e.targetKinds),targetRefClasses:$(e.targetRefClasses)})}function Dn(e){return JSON.stringify([e.sourceKinds??null,e.targetKinds??null,e.targetRefClasses??null])}function On(e){return Object.keys(e).length===0}function kn(e){let t=new Map;for(let n of e){let e=En(n);if(On(e))return;t.set(Dn(e),e)}return[...t.entries()].sort(([e],[t])=>e<t?-1:+(e>t)).map(([,e])=>e)}function An(e,t){let n=kn(t);return{type:e.type,symmetry:e.symmetry,...e.implication===void 0?{}:{implication:e.implication},...n===void 0?{}:{endpoints:n}}}function jn(e){return An(e,Z(e))}function Mn(e,t){if(e.implication!==void 0&&t.implication!==void 0&&e.implication!==t.implication)throw new X(e.type,`implication`,e.implication,t.implication);return e.implication??t.implication}function Nn(e,t){if(e.type!==t.type)throw Error(`Cannot merge relation type '${t.type}' into relation type '${e.type}'`);if(e.symmetry!==t.symmetry)throw new X(e.type,`symmetry`,e.symmetry,t.symmetry);let n=Mn(e,t);return An({type:e.type,symmetry:e.symmetry,implication:n},[...Z(e),...Z(t)])}export{St as $,N as A,Ht as B,rn as C,Ue as Ct,R as D,ye as Dt,G as E,Oe as Et,Ft as F,D as G,jt as H,V as I,Et as J,ut as K,U as L,W as M,B as N,K as O,Ce as Ot,L as P,Ct as Q,P as R,nn as S,We as St,Xt as T,ke as Tt,Mt as U,H as V,yt as W,kt as X,xt as Y,bt as Z,Yt as _,Ge as _t,yn as a,_t as at,Kt as b,S as bt,vn as c,lt as ct,un as d,Xe as dt,A as et,Y as f,Ye as ft,Jt as g,Ke as gt,cn as h,T as ht,Tn as i,Ot as it,Rt as j,Vt as k,ln as l,st as lt,on as m,E as mt,Nn as n,vt as nt,fn as o,dt as ot,sn as p,Je as pt,ht as q,jn as r,At as rt,_n as s,M as st,X as t,Dt as tt,J as u,ct as ut,Wt as v,C as vt,q as w,He as wt,qt as x,w as xt,Gt as y,qe as yt,Ut as z};
@@ -1 +1 @@
1
- import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as ee,O as te,P as m,Q as ne,R as re,S as h,T as ie,U as g,V as ae,W as oe,X as se,Y as ce,Z as le,_ as ue,a as de,at as fe,b as pe,d as _,et as me,f as he,g as v,h as y,i as ge,it as b,j as x,k as S,l as C,m as w,nt as T,o as E,ot as D,p as O,q as k,r as A,rt as j,s as M,t as N,tt as P,u as F,v as I,w as L,x as _e,y as ve,z as ye}from"../bus-B-ksy7YX.mjs";import{z as R}from"zod";const z={"channel.open":{request:R.object({endpoint:R.string(),token:R.string(),clientPubKey:R.string(),transports:R.array(R.string())}),response:R.object({channelId:R.string(),endpointPubKey:R.string()})}};function B(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=Array(t.length);for(let e=0;e<t.length;e++)n[e]=String.fromCharCode(t[e]);return btoa(n.join(``))}function V(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}async function H(){return globalThis.crypto.subtle.generateKey({name:`ECDH`,namedCurve:`P-256`},!1,[`deriveKey`])}async function U(e){return B(await globalThis.crypto.subtle.exportKey(`raw`,e))}async function W(e){let t=V(e);return globalThis.crypto.subtle.importKey(`raw`,t,{name:`ECDH`,namedCurve:`P-256`},!1,[])}async function G(e,t){return globalThis.crypto.subtle.deriveKey({name:`ECDH`,public:t},e,{name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`])}async function K(e,t,n){let r=globalThis.crypto.getRandomValues(new Uint8Array(12)),i=new TextEncoder().encode(t),a={name:`AES-GCM`,iv:r};n!==void 0&&(a.additionalData=new TextEncoder().encode(n));let o=await globalThis.crypto.subtle.encrypt(a,e,i);return{iv:B(r),data:B(o)}}async function q(e,t,n){let r=V(t.iv),i=V(t.data),a={name:`AES-GCM`,iv:r};n!==void 0&&(a.additionalData=new TextEncoder().encode(n));let o=await globalThis.crypto.subtle.decrypt(a,e,i);return new TextDecoder().decode(o)}function J(e,t){return{subject:t,$meta:{namespace:`channel:${e}`,isRequest:!1,payload:{},local:!1,channel:!1}}}function Y(e,t){return{subject:t,$meta:{namespace:`channel:${e}`,isRequest:!0,payload:{},local:!1,channel:!1}}}var X=class{channelId;sharedKey;context;transportNames;cleanups=[];pendingRequests=new Set;closed=!1;constructor(e,t,n,r){this.channelId=e,this.sharedKey=t,this.context=n,this.transportNames=r;let i=J(e,`$close`);this.cleanups.push(this.registerEventHandler(i,t,e=>{this.handlePeerClose()}))}on(e,t,n){this.assertOpen();let r=this.requireKey(),i=e.$meta.isRequest?this.registerRequestHandler(e,r,t,n):this.registerEventHandler(e,r,t,n);return this.cleanups.push(i),()=>{i();let e=this.cleanups.indexOf(i);e!==-1&&this.cleanups.splice(e,1)}}once(e,t){this.assertOpen();let n=this.requireKey(),r=null,i=(e=>{let n=r;if(r=null,n){let e=this.cleanups.indexOf(n);e!==-1&&this.cleanups.splice(e,1)}return n?.(),t(e)});return r=e.$meta.isRequest?this.registerRequestHandler(e,n,i):this.registerEventHandler(e,n,i),this.cleanups.push(r),()=>{if(r){let e=r;r=null;let t=this.cleanups.indexOf(e);t!==-1&&this.cleanups.splice(t,1),e()}}}async emit(e,t){this.assertOpen();let n=this.requireKey(),r=J(this.channelId,e.subject),i=await K(n,JSON.stringify(t),`${this.channelId}:${e.subject}:evt`);await w(this.context,r,i,{...this.transportNames?{transports:[...this.transportNames]}:{}})}async request(e,t,n){this.assertOpen();let r=this.requireKey(),i=new AbortController;this.pendingRequests.add(i);try{let a=Y(this.channelId,e.subject),o=await K(r,JSON.stringify(t),`${this.channelId}:${e.subject}:req`),s=await q(r,await _(this.context,a,o,{signal:i.signal,...n?.timeout===void 0?{}:{timeout:n.timeout},...this.transportNames?{transports:[...this.transportNames]}:{}}),`${this.channelId}:${e.subject}:res`);return JSON.parse(s)}finally{this.pendingRequests.delete(i)}}async requestOptional(e,t,n){try{return{handled:!0,data:await this.request(e,t,n)}}catch(e){if(e instanceof f)return{handled:!1};throw e}}close(){if(this.closed)return;this.closed=!0;let e=this.sharedKey;if(e){let t=J(this.channelId,`$close`);K(e,JSON.stringify({}),`${this.channelId}:$close:evt`).then(e=>w(this.context,t,e,{...this.transportNames?{transports:[...this.transportNames]}:{}})).catch(()=>{})}this.abortPendingRequests(),this.runCleanups(),this.sharedKey=null}assertOpen(){if(this.closed)throw new c(this.channelId)}requireKey(){return this.sharedKey}registerEventHandler(e,t,n,r){let i=J(this.channelId,e.subject),a=`${this.channelId}:${e.subject}:evt`;return v(this.context,i,async e=>{let r=await q(t,e.payload,a),i=JSON.parse(r);return n({...e,payload:i})},r)}registerRequestHandler(e,t,n,r){let i=Y(this.channelId,e.subject),a=`${this.channelId}:${e.subject}:req`,o=`${this.channelId}:${e.subject}:res`;return v(this.context,i,async e=>{let r=await q(t,e.payload,a),i=JSON.parse(r),s,c=e=>{s={value:e}},l=e=>{s={value:{...s?.value??{},...e}}},u=async()=>{let n=s;if(await e.next(),n!==void 0){s=n;return}let r=e.result;if(r!==void 0){let e=await q(t,r,o);s={value:JSON.parse(e)}}};if(await n({...e,payload:i,get result(){return s?.value},setResult:c,extendResult:l,next:u}),s!==void 0){let n=await K(t,JSON.stringify(s.value),o);e.setResult(n)}},r)}handlePeerClose(){this.closed||(this.closed=!0,this.abortPendingRequests(),this.runCleanups(),this.sharedKey=null)}abortPendingRequests(){let e=new c(this.channelId);for(let t of this.pendingRequests)t.abort(e);this.pendingRequests.clear()}runCleanups(){for(let e of this.cleanups)try{e()}catch{}this.cleanups.length=0}};function Z(t){return t.namespaceRegistry.registerNamespace(e(`system`,z)).subjects.channel.open}function be(e,t,n,r){let i=v(e,Z(e),async i=>{if(i.payload.endpoint!==t){await i.next();return}if(i.payload.token!==r.token)throw new g(t);let{publicKey:a,privateKey:o}=await H(),s=await G(o,await W(i.payload.clientPubKey)),c=globalThis.crypto.randomUUID(),l=new Set(e.transportRegistry.names()),u=new X(c,s,e,(i.payload.transports??[]).filter(e=>l.has(e)));try{n(u),i.setResult({channelId:c,endpointPubKey:await U(a)})}catch(e){throw u.close(),e}});return{name:t,token:r.token,close:i}}async function xe(e,t,n){let r=Z(e),{publicKey:i,privateKey:a}=await H(),o=await U(i),s=n.transports!==void 0,c=s?[...n.transports]:[...e.transportRegistry.names()],l=s?{transports:c}:void 0,u=await _(e,r,{endpoint:t,token:n.token,clientPubKey:o,transports:c},l),d=await G(a,await W(u.endpointPubKey));return new X(u.channelId,d,e,c)}var Se=class{pending;constructor(){this.pending=new Map}track(e,t,n){return new Promise((r,i)=>{if(n?.aborted){i(d(n.reason));return}let a=t===0?void 0:setTimeout(()=>{let n=this.pending.get(e);n!==void 0&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.reject(new m(e,t)))},t);if(this.pending.set(e,{resolve:r,reject:i,timeoutId:a,removeAbortListener:void 0}),n){let t=()=>{this.reject(e,d(n.reason))};n.addEventListener(`abort`,t,{once:!0});let r=()=>{n.removeEventListener(`abort`,t)},i=this.pending.get(e);i&&(i.removeAbortListener=r)}n?.aborted&&this.reject(e,d(n.reason))})}resolve(e,t){let n=this.pending.get(e);n&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.resolve(t))}reject(e,t){let n=this.pending.get(e);n&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.reject(t))}cancel(e,t){this.reject(e,t??d(void 0))}rejectAll(e){for(let[t,n]of this.pending.entries())clearTimeout(n.timeoutId),n.removeAbortListener?.(),n.reject(e);this.pending.clear()}cleanup(){this.rejectAll(Error(`Transport disconnected`))}};const Ce=e(`bus:lifecycle`,de).subjects;function we(e,t){let n={},r={},i={};for(let[t,a]of e)n[t]=a.priorities,r[t]=a.deliveryClass??`relayable`,a.filter!==void 0&&(i[t]=a.filter);return{type:`subscribe`,...t===void 0?{}:{ackId:t},subjects:n,deliveryClasses:r,...Object.keys(i).length>0&&{filters:i}}}function Q(e,t){return{type:`unsubscribe`,...t===void 0?{}:{ackId:t},subjects:e}}function Te(t,n){let r=t.trim();if(r.length===0||r.startsWith(`extension:`))throw Error(`Invalid extensionName: expected a non-empty extension name without the "extension:" prefix.`);let i=r;return{...e(`extension:${i}`,n.schemas),domain:i,extensions:n.extensions??{}}}function $(e,t){return`${e}.${t}`}function Ee(){let e=new Map;return{register(t){let n=$(t.namespace,t.subject);return e.set(n,t),()=>{e.get(n)===t&&e.delete(n)}},get(t,n){return e.get($(t,n))}}}const De=p.fact.$meta.namespace,Oe=p.fact.subject;function ke(e){return e.type===`event`||e.type===`request`||e.type===`broadcast`}async function Ae(e,t,n,r,i,a){let o=y({message:t,direction:`outbound`,observedAt:a(),machineId:i,namespaceRegistry:n,projectorRegistry:r});for(let n of o)await e.send({type:`event`,namespace:De,subject:Oe,payload:n,messageId:`${t.messageId}:telemetry:${n.factId}`,correlationId:t.correlationId})}function je(e,t,n,r,i){return async function(a,o){if(!ke(a))return!0;if(await Ae(e,a,t,n,r,i),a.type===`request`)throw Error(`Projected telemetry transport cannot satisfy request responses; exclude it from request routing.`);return a.type===`broadcast`?[]:!0}}function Me(e){let{inner:t,namespaceRegistry:n,projectorRegistry:r,machineId:i,now:a=Date.now}=e,o={name:e.name,send:je(t,n,r,i,a),onReceive(e){return t.onReceive(async()=>{})},connect(){return t.connect()},disconnect(){return t.disconnect()},subscribe(){return Promise.resolve()},unsubscribe(){return Promise.resolve()},get ready(){return t.ready},get onNewReadySession(){return t.onNewReadySession},set onNewReadySession(e){t.onNewReadySession=e},get onConnected(){return t.onConnected},set onConnected(e){t.onConnected=e},get onDisconnected(){return t.onDisconnected},set onDisconnected(e){t.onDisconnected=e},isReady(){return t.isReady?.()??!0},cancelRequest(e,n){t.cancelRequest?.(e,n)},onBroadcastResults(e,n,r){t.onBroadcastResults?.(e,n,r)}};return t.reconnect&&(o.reconnect=()=>t.reconnect()),o}export{oe as BusAbortError,k as BusError,Ce as BusLifecycle,ye as CONNECTION_LOST_ERROR_CODE,g as ChannelAuthError,c as ChannelClosedError,ae as ChannelOnlyError,n as ConnectionLostError,Se as CorrelationTracker,he as DEFAULT_READINESS_TIMEOUT_MS,O as DEFAULT_REQUEST_TIMEOUT_MS,_e as LOCAL_ORIGIN,re as LocalSubjectError,N as MakaioBus,l as NO_HANDLER_ERROR_CODE,f as NoHandlerError,F as OnceAbortError,h as REMOTE_ORIGIN,o as RequestError,z as SystemChannelSchemas,m as TimeoutError,ee as ValidationError,I as __resetWarnedSubjects,we as buildSubscribeMessage,Q as buildUnsubscribeMessage,fe as channelSubject,P as collectorOnlySubject,A as createBusContext,ge as createBusInstance,be as createChannelEndpoint,Te as createExtensionNamespace,C as createFilteredBus,Me as createProjectedTelemetryTransport,Ee as createSubjectTelemetryProjectorRegistry,T as defaultTransports,E as defineSubjectExtension,i as deserializeTransportError,M as extendSubject,te as findInErrorChain,me as getFullSubjectForSubjectDefinition,u as getPath,S as getSubjectFromBusMessage,r as handleCorrelationResponse,j as hostLocalRequest,t as isNoHandlerErrorForSubject,s as isRequestCancellation,D as isRequestSchema,b as localSubject,le as matchesAnySubscription,ce as matchesFilter,ne as matchesSubscription,se as mergeFilters,xe as openChannel,pe as parseBusUrl,y as projectSubjectTelemetryFacts,L as serializeTransportError,ie as shouldReceiveMessage,ve as toSafeDebugLog,a as trackMessageCorrelation,x as transportErrorData,ue as waitForSubscriptionPropagation};
1
+ import{$ as e,A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,J as u,K as d,L as f,M as p,N as ee,O as te,P as m,Q as ne,R as re,S as h,T as ie,U as g,V as ae,W as oe,X as se,Y as ce,Z as le,_ as ue,a as de,at as fe,b as pe,d as _,et as me,f as he,g as v,h as y,i as ge,it as b,j as x,k as S,l as C,m as w,nt as T,o as E,ot as D,p as O,q as k,r as A,rt as j,s as M,t as N,tt as P,u as F,v as I,w as L,x as _e,y as ve,z as ye}from"../bus-CtT6XeB_.mjs";import{z as R}from"zod";const z={"channel.open":{request:R.object({endpoint:R.string(),token:R.string(),clientPubKey:R.string(),transports:R.array(R.string())}),response:R.object({channelId:R.string(),endpointPubKey:R.string()})}};function B(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),n=Array(t.length);for(let e=0;e<t.length;e++)n[e]=String.fromCharCode(t[e]);return btoa(n.join(``))}function V(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n.buffer}async function H(){return globalThis.crypto.subtle.generateKey({name:`ECDH`,namedCurve:`P-256`},!1,[`deriveKey`])}async function U(e){return B(await globalThis.crypto.subtle.exportKey(`raw`,e))}async function W(e){let t=V(e);return globalThis.crypto.subtle.importKey(`raw`,t,{name:`ECDH`,namedCurve:`P-256`},!1,[])}async function G(e,t){return globalThis.crypto.subtle.deriveKey({name:`ECDH`,public:t},e,{name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`])}async function K(e,t,n){let r=globalThis.crypto.getRandomValues(new Uint8Array(12)),i=new TextEncoder().encode(t),a={name:`AES-GCM`,iv:r};n!==void 0&&(a.additionalData=new TextEncoder().encode(n));let o=await globalThis.crypto.subtle.encrypt(a,e,i);return{iv:B(r),data:B(o)}}async function q(e,t,n){let r=V(t.iv),i=V(t.data),a={name:`AES-GCM`,iv:r};n!==void 0&&(a.additionalData=new TextEncoder().encode(n));let o=await globalThis.crypto.subtle.decrypt(a,e,i);return new TextDecoder().decode(o)}function J(e,t){return{subject:t,$meta:{namespace:`channel:${e}`,isRequest:!1,payload:{},local:!1,channel:!1}}}function Y(e,t){return{subject:t,$meta:{namespace:`channel:${e}`,isRequest:!0,payload:{},local:!1,channel:!1}}}var X=class{channelId;sharedKey;context;transportNames;cleanups=[];pendingRequests=new Set;closed=!1;constructor(e,t,n,r){this.channelId=e,this.sharedKey=t,this.context=n,this.transportNames=r;let i=J(e,`$close`);this.cleanups.push(this.registerEventHandler(i,t,e=>{this.handlePeerClose()}))}on(e,t,n){this.assertOpen();let r=this.requireKey(),i=e.$meta.isRequest?this.registerRequestHandler(e,r,t,n):this.registerEventHandler(e,r,t,n);return this.cleanups.push(i),()=>{i();let e=this.cleanups.indexOf(i);e!==-1&&this.cleanups.splice(e,1)}}once(e,t){this.assertOpen();let n=this.requireKey(),r=null,i=(e=>{let n=r;if(r=null,n){let e=this.cleanups.indexOf(n);e!==-1&&this.cleanups.splice(e,1)}return n?.(),t(e)});return r=e.$meta.isRequest?this.registerRequestHandler(e,n,i):this.registerEventHandler(e,n,i),this.cleanups.push(r),()=>{if(r){let e=r;r=null;let t=this.cleanups.indexOf(e);t!==-1&&this.cleanups.splice(t,1),e()}}}async emit(e,t){this.assertOpen();let n=this.requireKey(),r=J(this.channelId,e.subject),i=await K(n,JSON.stringify(t),`${this.channelId}:${e.subject}:evt`);await w(this.context,r,i,{...this.transportNames?{transports:[...this.transportNames]}:{}})}async request(e,t,n){this.assertOpen();let r=this.requireKey(),i=new AbortController;this.pendingRequests.add(i);try{let a=Y(this.channelId,e.subject),o=await K(r,JSON.stringify(t),`${this.channelId}:${e.subject}:req`),s=await q(r,await _(this.context,a,o,{signal:i.signal,...n?.timeout===void 0?{}:{timeout:n.timeout},...this.transportNames?{transports:[...this.transportNames]}:{}}),`${this.channelId}:${e.subject}:res`);return JSON.parse(s)}finally{this.pendingRequests.delete(i)}}async requestOptional(e,t,n){try{return{handled:!0,data:await this.request(e,t,n)}}catch(e){if(e instanceof f)return{handled:!1};throw e}}close(){if(this.closed)return;this.closed=!0;let e=this.sharedKey;if(e){let t=J(this.channelId,`$close`);K(e,JSON.stringify({}),`${this.channelId}:$close:evt`).then(e=>w(this.context,t,e,{...this.transportNames?{transports:[...this.transportNames]}:{}})).catch(()=>{})}this.abortPendingRequests(),this.runCleanups(),this.sharedKey=null}assertOpen(){if(this.closed)throw new c(this.channelId)}requireKey(){return this.sharedKey}registerEventHandler(e,t,n,r){let i=J(this.channelId,e.subject),a=`${this.channelId}:${e.subject}:evt`;return v(this.context,i,async e=>{let r=await q(t,e.payload,a),i=JSON.parse(r);return n({...e,payload:i})},r)}registerRequestHandler(e,t,n,r){let i=Y(this.channelId,e.subject),a=`${this.channelId}:${e.subject}:req`,o=`${this.channelId}:${e.subject}:res`;return v(this.context,i,async e=>{let r=await q(t,e.payload,a),i=JSON.parse(r),s,c=e=>{s={value:e}},l=e=>{s={value:{...s?.value??{},...e}}},u=async()=>{let n=s;if(await e.next(),n!==void 0){s=n;return}let r=e.result;if(r!==void 0){let e=await q(t,r,o);s={value:JSON.parse(e)}}};if(await n({...e,payload:i,get result(){return s?.value},setResult:c,extendResult:l,next:u}),s!==void 0){let n=await K(t,JSON.stringify(s.value),o);e.setResult(n)}},r)}handlePeerClose(){this.closed||(this.closed=!0,this.abortPendingRequests(),this.runCleanups(),this.sharedKey=null)}abortPendingRequests(){let e=new c(this.channelId);for(let t of this.pendingRequests)t.abort(e);this.pendingRequests.clear()}runCleanups(){for(let e of this.cleanups)try{e()}catch{}this.cleanups.length=0}};function Z(t){return t.namespaceRegistry.registerNamespace(e(`system`,z)).subjects.channel.open}function be(e,t,n,r){let i=v(e,Z(e),async i=>{if(i.payload.endpoint!==t){await i.next();return}if(i.payload.token!==r.token)throw new g(t);let{publicKey:a,privateKey:o}=await H(),s=await G(o,await W(i.payload.clientPubKey)),c=globalThis.crypto.randomUUID(),l=new Set(e.transportRegistry.names()),u=new X(c,s,e,(i.payload.transports??[]).filter(e=>l.has(e)));try{n(u),i.setResult({channelId:c,endpointPubKey:await U(a)})}catch(e){throw u.close(),e}});return{name:t,token:r.token,close:i}}async function xe(e,t,n){let r=Z(e),{publicKey:i,privateKey:a}=await H(),o=await U(i),s=n.transports!==void 0,c=s?[...n.transports]:[...e.transportRegistry.names()],l=s?{transports:c}:void 0,u=await _(e,r,{endpoint:t,token:n.token,clientPubKey:o,transports:c},l),d=await G(a,await W(u.endpointPubKey));return new X(u.channelId,d,e,c)}var Se=class{pending;constructor(){this.pending=new Map}track(e,t,n){return new Promise((r,i)=>{if(n?.aborted){i(d(n.reason));return}let a=t===0?void 0:setTimeout(()=>{let n=this.pending.get(e);n!==void 0&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.reject(new m(e,t)))},t);if(this.pending.set(e,{resolve:r,reject:i,timeoutId:a,removeAbortListener:void 0}),n){let t=()=>{this.reject(e,d(n.reason))};n.addEventListener(`abort`,t,{once:!0});let r=()=>{n.removeEventListener(`abort`,t)},i=this.pending.get(e);i&&(i.removeAbortListener=r)}n?.aborted&&this.reject(e,d(n.reason))})}resolve(e,t){let n=this.pending.get(e);n&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.resolve(t))}reject(e,t){let n=this.pending.get(e);n&&(clearTimeout(n.timeoutId),n.removeAbortListener?.(),this.pending.delete(e),n.reject(t))}cancel(e,t){this.reject(e,t??d(void 0))}rejectAll(e){for(let[t,n]of this.pending.entries())clearTimeout(n.timeoutId),n.removeAbortListener?.(),n.reject(e);this.pending.clear()}cleanup(){this.rejectAll(Error(`Transport disconnected`))}};const Ce=e(`bus:lifecycle`,de).subjects;function we(e,t){let n={},r={},i={};for(let[t,a]of e)n[t]=a.priorities,r[t]=a.deliveryClass??`relayable`,a.filter!==void 0&&(i[t]=a.filter);return{type:`subscribe`,...t===void 0?{}:{ackId:t},subjects:n,deliveryClasses:r,...Object.keys(i).length>0&&{filters:i}}}function Q(e,t){return{type:`unsubscribe`,...t===void 0?{}:{ackId:t},subjects:e}}function Te(t,n){let r=t.trim();if(r.length===0||r.startsWith(`extension:`))throw Error(`Invalid extensionName: expected a non-empty extension name without the "extension:" prefix.`);let i=r;return{...e(`extension:${i}`,n.schemas),domain:i,extensions:n.extensions??{}}}function $(e,t){return`${e}.${t}`}function Ee(){let e=new Map;return{register(t){let n=$(t.namespace,t.subject);return e.set(n,t),()=>{e.get(n)===t&&e.delete(n)}},get(t,n){return e.get($(t,n))}}}const De=p.fact.$meta.namespace,Oe=p.fact.subject;function ke(e){return e.type===`event`||e.type===`request`||e.type===`broadcast`}async function Ae(e,t,n,r,i,a){let o=y({message:t,direction:`outbound`,observedAt:a(),machineId:i,namespaceRegistry:n,projectorRegistry:r});for(let n of o)await e.send({type:`event`,namespace:De,subject:Oe,payload:n,messageId:`${t.messageId}:telemetry:${n.factId}`,correlationId:t.correlationId})}function je(e,t,n,r,i){return async function(a,o){if(!ke(a))return!0;if(await Ae(e,a,t,n,r,i),a.type===`request`)throw Error(`Projected telemetry transport cannot satisfy request responses; exclude it from request routing.`);return a.type===`broadcast`?[]:!0}}function Me(e){let{inner:t,namespaceRegistry:n,projectorRegistry:r,machineId:i,now:a=Date.now}=e,o={name:e.name,send:je(t,n,r,i,a),onReceive(e){return t.onReceive(async()=>{})},connect(){return t.connect()},disconnect(){return t.disconnect()},subscribe(){return Promise.resolve()},unsubscribe(){return Promise.resolve()},get ready(){return t.ready},get onNewReadySession(){return t.onNewReadySession},set onNewReadySession(e){t.onNewReadySession=e},get onConnected(){return t.onConnected},set onConnected(e){t.onConnected=e},get onDisconnected(){return t.onDisconnected},set onDisconnected(e){t.onDisconnected=e},isReady(){return t.isReady?.()??!0},cancelRequest(e,n){t.cancelRequest?.(e,n)},onBroadcastResults(e,n,r){t.onBroadcastResults?.(e,n,r)}};return t.reconnect&&(o.reconnect=()=>t.reconnect()),o}export{oe as BusAbortError,k as BusError,Ce as BusLifecycle,ye as CONNECTION_LOST_ERROR_CODE,g as ChannelAuthError,c as ChannelClosedError,ae as ChannelOnlyError,n as ConnectionLostError,Se as CorrelationTracker,he as DEFAULT_READINESS_TIMEOUT_MS,O as DEFAULT_REQUEST_TIMEOUT_MS,_e as LOCAL_ORIGIN,re as LocalSubjectError,N as MakaioBus,l as NO_HANDLER_ERROR_CODE,f as NoHandlerError,F as OnceAbortError,h as REMOTE_ORIGIN,o as RequestError,z as SystemChannelSchemas,m as TimeoutError,ee as ValidationError,I as __resetWarnedSubjects,we as buildSubscribeMessage,Q as buildUnsubscribeMessage,fe as channelSubject,P as collectorOnlySubject,A as createBusContext,ge as createBusInstance,be as createChannelEndpoint,Te as createExtensionNamespace,C as createFilteredBus,Me as createProjectedTelemetryTransport,Ee as createSubjectTelemetryProjectorRegistry,T as defaultTransports,E as defineSubjectExtension,i as deserializeTransportError,M as extendSubject,te as findInErrorChain,me as getFullSubjectForSubjectDefinition,u as getPath,S as getSubjectFromBusMessage,r as handleCorrelationResponse,j as hostLocalRequest,t as isNoHandlerErrorForSubject,s as isRequestCancellation,D as isRequestSchema,b as localSubject,le as matchesAnySubscription,ce as matchesFilter,ne as matchesSubscription,se as mergeFilters,xe as openChannel,pe as parseBusUrl,y as projectSubjectTelemetryFacts,L as serializeTransportError,ie as shouldReceiveMessage,ve as toSafeDebugLog,a as trackMessageCorrelation,x as transportErrorData,ue as waitForSubscriptionPropagation};