@lssm/lib.contracts 0.0.0-canary-20251217083314 → 0.0.0-canary-20251220002821

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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/dist/app-config/contracts.d.ts +50 -50
  3. package/dist/app-config/contracts.js +54 -56
  4. package/dist/app-config/events.d.ts +27 -27
  5. package/dist/app-config/events.js +31 -33
  6. package/dist/app-config/lifecycle-contracts.d.ts +80 -80
  7. package/dist/app-config/lifecycle-contracts.js +66 -68
  8. package/dist/client/react/form-render.d.ts +6 -6
  9. package/dist/client/react/form-render.js +15 -15
  10. package/dist/contracts-adapter-hydration.js +2 -2
  11. package/dist/data-views/query-generator.d.ts +2 -2
  12. package/dist/data-views/query-generator.js +1 -1
  13. package/dist/data-views/runtime.d.ts +2 -2
  14. package/dist/data-views/runtime.js +2 -2
  15. package/dist/docs/index.js +0 -6
  16. package/dist/docs/meta.docs.js +3 -0
  17. package/dist/docs/tech-contracts.docs.js +3 -0
  18. package/dist/forms.d.ts +4 -4
  19. package/dist/forms.js +3 -2
  20. package/dist/index.js +2 -3
  21. package/dist/integrations/contracts.d.ts +105 -104
  22. package/dist/integrations/contracts.js +63 -65
  23. package/dist/integrations/openbanking/contracts/accounts.d.ts +69 -68
  24. package/dist/integrations/openbanking/contracts/accounts.js +29 -31
  25. package/dist/integrations/openbanking/contracts/balances.d.ts +37 -36
  26. package/dist/integrations/openbanking/contracts/balances.js +16 -18
  27. package/dist/integrations/openbanking/contracts/transactions.d.ts +51 -50
  28. package/dist/integrations/openbanking/contracts/transactions.js +30 -32
  29. package/dist/integrations/openbanking/guards.js +1 -0
  30. package/dist/integrations/openbanking/models.d.ts +55 -55
  31. package/dist/integrations/openbanking/models.js +58 -60
  32. package/dist/integrations/providers/impls/gmail-inbound.js +1 -1
  33. package/dist/integrations/providers/impls/gmail-outbound.js +4 -4
  34. package/dist/integrations/providers/impls/mistral-llm.d.ts +1 -1
  35. package/dist/integrations/providers/impls/mistral-llm.js +1 -1
  36. package/dist/integrations/providers/impls/powens-openbanking.d.ts +1 -1
  37. package/dist/integrations/providers/impls/provider-factory.js +4 -1
  38. package/dist/integrations/providers/impls/qdrant-vector.js +2 -2
  39. package/dist/integrations/runtime.d.ts +1 -1
  40. package/dist/integrations/runtime.js +1 -1
  41. package/dist/integrations/secrets/manager.js +1 -1
  42. package/dist/jobs/handlers/gmail-sync-handler.d.ts +1 -1
  43. package/dist/jsonschema.d.ts +3 -3
  44. package/dist/knowledge/contracts.d.ts +69 -68
  45. package/dist/knowledge/contracts.js +42 -44
  46. package/dist/markdown.d.ts +1 -1
  47. package/dist/markdown.js +1 -1
  48. package/dist/onboarding-base.d.ts +29 -29
  49. package/dist/onboarding-base.js +20 -22
  50. package/dist/ownership.d.ts +4 -6
  51. package/dist/ownership.js +4 -5
  52. package/dist/presentations.d.ts +3 -3
  53. package/dist/presentations.v2.js +5 -2
  54. package/dist/promptRegistry.d.ts +2 -2
  55. package/dist/registry.d.ts +1 -1
  56. package/dist/registry.js +1 -0
  57. package/dist/resources.js +4 -1
  58. package/dist/schema/dist/index.js +4683 -6
  59. package/dist/schema-to-markdown.d.ts +1 -1
  60. package/dist/schema-to-markdown.js +1 -1
  61. package/dist/server/graphql-pothos.js +0 -1
  62. package/dist/server/rest-elysia.d.ts +1 -1
  63. package/dist/server/rest-express.js +0 -3
  64. package/dist/server/rest-generic.d.ts +1 -1
  65. package/dist/server/rest-generic.js +0 -1
  66. package/dist/server/rest-next-mcp.js +1 -1
  67. package/dist/server/rest-next-pages.js +0 -3
  68. package/dist/workflow/adapters/db-adapter.d.ts +19 -7
  69. package/dist/workflow/adapters/db-adapter.js +3 -3
  70. package/dist/workflow/expression.js +3 -2
  71. package/dist/workflow/validation.js +1 -0
  72. package/package.json +19 -18
  73. package/dist/docs/PUBLISHING.docblock.d.ts +0 -6
  74. package/dist/docs/PUBLISHING.docblock.js +0 -17
  75. package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.d.ts +0 -6
  76. package/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -17
  77. package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.d.ts +0 -6
  78. package/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -17
  79. package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.d.ts +0 -6
  80. package/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -17
  81. package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.d.ts +0 -6
  82. package/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -17
  83. package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.d.ts +0 -6
  84. package/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -17
  85. package/dist/schema/dist/EnumType.js +0 -2
  86. package/dist/schema/dist/FieldType.js +0 -49
  87. package/dist/schema/dist/ScalarTypeEnum.js +0 -236
  88. package/dist/schema/dist/SchemaModel.js +0 -39
  89. package/dist/schema/dist/entity/defineEntity.js +0 -1
  90. package/dist/schema/dist/entity/index.js +0 -2
  91. package/dist/schema/dist/entity/types.js +0 -1
package/dist/markdown.js CHANGED
@@ -5,7 +5,7 @@ import { isEmitDeclRef } from "./spec.js";
5
5
  * Render simple Markdown docs for each spec.
6
6
  * Useful for dev portals and repo docs generation.
7
7
  */
8
- function specsToMarkdown(reg, extras) {
8
+ function specsToMarkdown(reg, _extras) {
9
9
  const lines = [];
10
10
  for (const spec of reg.listSpecs()) {
11
11
  const m = spec.meta;
@@ -1,135 +1,135 @@
1
1
  import { ContractSpec } from "./spec.js";
2
- import * as _lssm_lib_schema15 from "@lssm/lib.schema";
2
+ import * as _lssm_lib_schema61 from "@lssm/lib.schema";
3
3
  import { SchemaModel } from "@lssm/lib.schema";
4
4
 
5
5
  //#region src/onboarding-base.d.ts
6
6
  /** Save/update onboarding draft (auto-save during flow) */
7
7
  declare const SaveOnboardingDraftInput: SchemaModel<{
8
8
  data: {
9
- type: _lssm_lib_schema15.FieldType<unknown, unknown>;
9
+ type: _lssm_lib_schema61.FieldType<unknown, unknown>;
10
10
  isOptional: false;
11
11
  };
12
12
  }>;
13
13
  declare const SaveOnboardingDraftOutput: SchemaModel<{
14
14
  id: {
15
- type: _lssm_lib_schema15.FieldType<string, string>;
15
+ type: _lssm_lib_schema61.FieldType<string, string>;
16
16
  isOptional: false;
17
17
  };
18
18
  organizationId: {
19
- type: _lssm_lib_schema15.FieldType<string, string>;
19
+ type: _lssm_lib_schema61.FieldType<string, string>;
20
20
  isOptional: false;
21
21
  };
22
22
  }>;
23
23
  declare const SaveOnboardingDraftBaseSpec: ContractSpec<SchemaModel<{
24
24
  data: {
25
- type: _lssm_lib_schema15.FieldType<unknown, unknown>;
25
+ type: _lssm_lib_schema61.FieldType<unknown, unknown>;
26
26
  isOptional: false;
27
27
  };
28
28
  }>, SchemaModel<{
29
29
  id: {
30
- type: _lssm_lib_schema15.FieldType<string, string>;
30
+ type: _lssm_lib_schema61.FieldType<string, string>;
31
31
  isOptional: false;
32
32
  };
33
33
  organizationId: {
34
- type: _lssm_lib_schema15.FieldType<string, string>;
34
+ type: _lssm_lib_schema61.FieldType<string, string>;
35
35
  isOptional: false;
36
36
  };
37
37
  }>, undefined>;
38
38
  /** Get current onboarding draft (on mount/restore) */
39
39
  declare const GetOnboardingDraftOutput: SchemaModel<{
40
40
  id: {
41
- type: _lssm_lib_schema15.FieldType<string, string>;
41
+ type: _lssm_lib_schema61.FieldType<string, string>;
42
42
  isOptional: true;
43
43
  };
44
44
  organizationId: {
45
- type: _lssm_lib_schema15.FieldType<string, string>;
45
+ type: _lssm_lib_schema61.FieldType<string, string>;
46
46
  isOptional: true;
47
47
  };
48
48
  data: {
49
- type: _lssm_lib_schema15.FieldType<unknown, unknown>;
49
+ type: _lssm_lib_schema61.FieldType<unknown, unknown>;
50
50
  isOptional: true;
51
51
  };
52
52
  createdAt: {
53
- type: _lssm_lib_schema15.FieldType<Date, string>;
53
+ type: _lssm_lib_schema61.FieldType<Date, string>;
54
54
  isOptional: true;
55
55
  };
56
56
  updatedAt: {
57
- type: _lssm_lib_schema15.FieldType<Date, string>;
57
+ type: _lssm_lib_schema61.FieldType<Date, string>;
58
58
  isOptional: true;
59
59
  };
60
60
  }>;
61
- declare const GetOnboardingDraftBaseSpec: ContractSpec<_lssm_lib_schema15.AnySchemaModel, SchemaModel<{
61
+ declare const GetOnboardingDraftBaseSpec: ContractSpec<_lssm_lib_schema61.AnySchemaModel, SchemaModel<{
62
62
  id: {
63
- type: _lssm_lib_schema15.FieldType<string, string>;
63
+ type: _lssm_lib_schema61.FieldType<string, string>;
64
64
  isOptional: true;
65
65
  };
66
66
  organizationId: {
67
- type: _lssm_lib_schema15.FieldType<string, string>;
67
+ type: _lssm_lib_schema61.FieldType<string, string>;
68
68
  isOptional: true;
69
69
  };
70
70
  data: {
71
- type: _lssm_lib_schema15.FieldType<unknown, unknown>;
71
+ type: _lssm_lib_schema61.FieldType<unknown, unknown>;
72
72
  isOptional: true;
73
73
  };
74
74
  createdAt: {
75
- type: _lssm_lib_schema15.FieldType<Date, string>;
75
+ type: _lssm_lib_schema61.FieldType<Date, string>;
76
76
  isOptional: true;
77
77
  };
78
78
  updatedAt: {
79
- type: _lssm_lib_schema15.FieldType<Date, string>;
79
+ type: _lssm_lib_schema61.FieldType<Date, string>;
80
80
  isOptional: true;
81
81
  };
82
82
  }>, undefined>;
83
83
  /** Delete onboarding draft (cleanup after completion or cancel) */
84
84
  declare const DeleteOnboardingDraftOutput: SchemaModel<{
85
85
  ok: {
86
- type: _lssm_lib_schema15.FieldType<boolean, boolean>;
86
+ type: _lssm_lib_schema61.FieldType<boolean, boolean>;
87
87
  isOptional: false;
88
88
  };
89
89
  }>;
90
- declare const DeleteOnboardingDraftBaseSpec: ContractSpec<_lssm_lib_schema15.AnySchemaModel, SchemaModel<{
90
+ declare const DeleteOnboardingDraftBaseSpec: ContractSpec<_lssm_lib_schema61.AnySchemaModel, SchemaModel<{
91
91
  ok: {
92
- type: _lssm_lib_schema15.FieldType<boolean, boolean>;
92
+ type: _lssm_lib_schema61.FieldType<boolean, boolean>;
93
93
  isOptional: false;
94
94
  };
95
95
  }>, undefined>;
96
96
  /** Complete onboarding (final submit, creates entities) */
97
97
  declare const CompleteOnboardingBaseInput: SchemaModel<{
98
98
  data: {
99
- type: _lssm_lib_schema15.FieldType<unknown, unknown>;
99
+ type: _lssm_lib_schema61.FieldType<unknown, unknown>;
100
100
  isOptional: false;
101
101
  };
102
102
  }>;
103
103
  declare const CompleteOnboardingBaseOutput: SchemaModel<{
104
104
  success: {
105
- type: _lssm_lib_schema15.FieldType<boolean, boolean>;
105
+ type: _lssm_lib_schema61.FieldType<boolean, boolean>;
106
106
  isOptional: false;
107
107
  };
108
108
  userId: {
109
- type: _lssm_lib_schema15.FieldType<string, string>;
109
+ type: _lssm_lib_schema61.FieldType<string, string>;
110
110
  isOptional: true;
111
111
  };
112
112
  organizationId: {
113
- type: _lssm_lib_schema15.FieldType<string, string>;
113
+ type: _lssm_lib_schema61.FieldType<string, string>;
114
114
  isOptional: true;
115
115
  };
116
116
  }>;
117
117
  declare const CompleteOnboardingBaseSpec: ContractSpec<SchemaModel<{
118
118
  data: {
119
- type: _lssm_lib_schema15.FieldType<unknown, unknown>;
119
+ type: _lssm_lib_schema61.FieldType<unknown, unknown>;
120
120
  isOptional: false;
121
121
  };
122
122
  }>, SchemaModel<{
123
123
  success: {
124
- type: _lssm_lib_schema15.FieldType<boolean, boolean>;
124
+ type: _lssm_lib_schema61.FieldType<boolean, boolean>;
125
125
  isOptional: false;
126
126
  };
127
127
  userId: {
128
- type: _lssm_lib_schema15.FieldType<string, string>;
128
+ type: _lssm_lib_schema61.FieldType<string, string>;
129
129
  isOptional: true;
130
130
  };
131
131
  organizationId: {
132
- type: _lssm_lib_schema15.FieldType<string, string>;
132
+ type: _lssm_lib_schema61.FieldType<string, string>;
133
133
  isOptional: true;
134
134
  };
135
135
  }>, undefined>;
@@ -1,6 +1,4 @@
1
- import { ScalarTypeEnum } from "./schema/dist/ScalarTypeEnum.js";
2
- import { SchemaModel } from "./schema/dist/SchemaModel.js";
3
- import "./schema/dist/index.js";
1
+ import { E5, x8 } from "./schema/dist/index.js";
4
2
  import { defineCommand, defineQuery } from "./spec.js";
5
3
  import { OwnersEnum, StabilityEnum } from "./ownership.js";
6
4
 
@@ -10,24 +8,24 @@ import { OwnersEnum, StabilityEnum } from "./ownership.js";
10
8
  * These operations are reusable for any app that needs multi-step onboarding with draft persistence.
11
9
  */
12
10
  /** Save/update onboarding draft (auto-save during flow) */
13
- const SaveOnboardingDraftInput = new SchemaModel({
11
+ const SaveOnboardingDraftInput = new x8({
14
12
  name: "SaveOnboardingDraftInput",
15
13
  description: "Input for saving onboarding draft",
16
14
  fields: { data: {
17
- type: ScalarTypeEnum.JSON(),
15
+ type: E5.JSON(),
18
16
  isOptional: false
19
17
  } }
20
18
  });
21
- const SaveOnboardingDraftOutput = new SchemaModel({
19
+ const SaveOnboardingDraftOutput = new x8({
22
20
  name: "SaveOnboardingDraftOutput",
23
21
  description: "Output for saving onboarding draft",
24
22
  fields: {
25
23
  id: {
26
- type: ScalarTypeEnum.ID(),
24
+ type: E5.ID(),
27
25
  isOptional: false
28
26
  },
29
27
  organizationId: {
30
- type: ScalarTypeEnum.ID(),
28
+ type: E5.ID(),
31
29
  isOptional: false
32
30
  }
33
31
  }
@@ -57,28 +55,28 @@ const SaveOnboardingDraftBaseSpec = defineCommand({
57
55
  }
58
56
  });
59
57
  /** Get current onboarding draft (on mount/restore) */
60
- const GetOnboardingDraftOutput = new SchemaModel({
58
+ const GetOnboardingDraftOutput = new x8({
61
59
  name: "GetOnboardingDraftOutput",
62
60
  description: "Onboarding draft payload",
63
61
  fields: {
64
62
  id: {
65
- type: ScalarTypeEnum.ID(),
63
+ type: E5.ID(),
66
64
  isOptional: true
67
65
  },
68
66
  organizationId: {
69
- type: ScalarTypeEnum.ID(),
67
+ type: E5.ID(),
70
68
  isOptional: true
71
69
  },
72
70
  data: {
73
- type: ScalarTypeEnum.JSON(),
71
+ type: E5.JSON(),
74
72
  isOptional: true
75
73
  },
76
74
  createdAt: {
77
- type: ScalarTypeEnum.DateTime(),
75
+ type: E5.DateTime(),
78
76
  isOptional: true
79
77
  },
80
78
  updatedAt: {
81
- type: ScalarTypeEnum.DateTime(),
79
+ type: E5.DateTime(),
82
80
  isOptional: true
83
81
  }
84
82
  }
@@ -108,11 +106,11 @@ const GetOnboardingDraftBaseSpec = defineQuery({
108
106
  }
109
107
  });
110
108
  /** Delete onboarding draft (cleanup after completion or cancel) */
111
- const DeleteOnboardingDraftOutput = new SchemaModel({
109
+ const DeleteOnboardingDraftOutput = new x8({
112
110
  name: "DeleteOnboardingDraftOutput",
113
111
  description: "Result of delete operation",
114
112
  fields: { ok: {
115
- type: ScalarTypeEnum.Boolean(),
113
+ type: E5.Boolean(),
116
114
  isOptional: false
117
115
  } }
118
116
  });
@@ -141,28 +139,28 @@ const DeleteOnboardingDraftBaseSpec = defineCommand({
141
139
  }
142
140
  });
143
141
  /** Complete onboarding (final submit, creates entities) */
144
- const CompleteOnboardingBaseInput = new SchemaModel({
142
+ const CompleteOnboardingBaseInput = new x8({
145
143
  name: "CompleteOnboardingBaseInput",
146
144
  description: "Input for completing onboarding",
147
145
  fields: { data: {
148
- type: ScalarTypeEnum.JSON(),
146
+ type: E5.JSON(),
149
147
  isOptional: false
150
148
  } }
151
149
  });
152
- const CompleteOnboardingBaseOutput = new SchemaModel({
150
+ const CompleteOnboardingBaseOutput = new x8({
153
151
  name: "CompleteOnboardingBaseOutput",
154
152
  description: "Result of onboarding completion",
155
153
  fields: {
156
154
  success: {
157
- type: ScalarTypeEnum.Boolean(),
155
+ type: E5.Boolean(),
158
156
  isOptional: false
159
157
  },
160
158
  userId: {
161
- type: ScalarTypeEnum.ID(),
159
+ type: E5.ID(),
162
160
  isOptional: true
163
161
  },
164
162
  organizationId: {
165
- type: ScalarTypeEnum.ID(),
163
+ type: E5.ID(),
166
164
  isOptional: true
167
165
  }
168
166
  }
@@ -16,6 +16,7 @@ declare const OwnersEnum: {
16
16
  readonly PlatformMarketplace: "platform.marketplace";
17
17
  readonly PlatformContent: "platform.content";
18
18
  readonly PlatformFeatureFlags: "platform.featureflags";
19
+ readonly PlatformFinance: "platform.finance";
19
20
  };
20
21
  type Owner = (typeof OwnersEnum)[keyof typeof OwnersEnum] | (string & {});
21
22
  declare const Owners: {
@@ -26,6 +27,7 @@ declare const Owners: {
26
27
  readonly PlatformMarketplace: "platform.marketplace";
27
28
  readonly PlatformContent: "platform.content";
28
29
  readonly PlatformFeatureFlags: "platform.featureflags";
30
+ readonly PlatformFinance: "platform.finance";
29
31
  };
30
32
  declare const TagsEnum: {
31
33
  readonly Spots: "spots";
@@ -38,11 +40,9 @@ declare const TagsEnum: {
38
40
  readonly Guide: "guide";
39
41
  readonly Docs: "docs";
40
42
  readonly I18n: "i18n";
41
- readonly AtomicPages: "atomic:pages";
42
43
  readonly Incident: "incident";
44
+ readonly Automation: "automation";
43
45
  readonly Hygiene: "hygiene";
44
- readonly WeeklyPulse: "weekly_pulse";
45
- readonly WebAuth: "webauth";
46
46
  };
47
47
  type Tag = (typeof TagsEnum)[keyof typeof TagsEnum] | (string & {});
48
48
  declare const Tags: {
@@ -56,11 +56,9 @@ declare const Tags: {
56
56
  readonly Guide: "guide";
57
57
  readonly Docs: "docs";
58
58
  readonly I18n: "i18n";
59
- readonly AtomicPages: "atomic:pages";
60
59
  readonly Incident: "incident";
60
+ readonly Automation: "automation";
61
61
  readonly Hygiene: "hygiene";
62
- readonly WeeklyPulse: "weekly_pulse";
63
- readonly WebAuth: "webauth";
64
62
  };
65
63
  interface OwnerShipMeta {
66
64
  version?: number;
package/dist/ownership.js CHANGED
@@ -14,7 +14,8 @@ const OwnersEnum = {
14
14
  PlatformSigil: "platform.sigil",
15
15
  PlatformMarketplace: "platform.marketplace",
16
16
  PlatformContent: "platform.content",
17
- PlatformFeatureFlags: "platform.featureflags"
17
+ PlatformFeatureFlags: "platform.featureflags",
18
+ PlatformFinance: "platform.finance"
18
19
  };
19
20
  const Owners = OwnersEnum;
20
21
  const TagsEnum = {
@@ -28,11 +29,9 @@ const TagsEnum = {
28
29
  Guide: "guide",
29
30
  Docs: "docs",
30
31
  I18n: "i18n",
31
- AtomicPages: "atomic:pages",
32
32
  Incident: "incident",
33
- Hygiene: "hygiene",
34
- WeeklyPulse: "weekly_pulse",
35
- WebAuth: "webauth"
33
+ Automation: "automation",
34
+ Hygiene: "hygiene"
36
35
  };
37
36
  const Tags = TagsEnum;
38
37
 
@@ -1,6 +1,6 @@
1
1
  import { Stability } from "./ownership.js";
2
2
  import z from "zod";
3
- import * as _lssm_lib_schema7 from "@lssm/lib.schema";
3
+ import * as _lssm_lib_schema89 from "@lssm/lib.schema";
4
4
  import { AnySchemaModel } from "@lssm/lib.schema";
5
5
 
6
6
  //#region src/presentations.d.ts
@@ -62,7 +62,7 @@ declare class PresentationRegistry {
62
62
  declare function jsonSchemaForPresentation(p: PresentationSpec): {
63
63
  framework: "react";
64
64
  componentKey: string;
65
- props: z.core.ZodStandardJSONSchemaPayload<_lssm_lib_schema7.TopLevelZodFromModel<_lssm_lib_schema7.SchemaModelFieldsAnyConfig<AnySchemaModel | _lssm_lib_schema7.AnyFieldType | _lssm_lib_schema7.AnyEnumType>>>;
65
+ props: z.core.ZodStandardJSONSchemaPayload<_lssm_lib_schema89.TopLevelZodFromModel<_lssm_lib_schema89.SchemaModelFieldsAnyConfig<_lssm_lib_schema89.AnyFieldType | _lssm_lib_schema89.AnyEnumType | AnySchemaModel>>>;
66
66
  meta: {
67
67
  readonly name: string;
68
68
  readonly version: number;
@@ -84,7 +84,7 @@ declare function jsonSchemaForPresentation(p: PresentationSpec): {
84
84
  kind: PresentationKind;
85
85
  } | {
86
86
  mimeType: string;
87
- model: z.core.ZodStandardJSONSchemaPayload<_lssm_lib_schema7.TopLevelZodFromModel<_lssm_lib_schema7.SchemaModelFieldsAnyConfig<AnySchemaModel | _lssm_lib_schema7.AnyFieldType | _lssm_lib_schema7.AnyEnumType>>>;
87
+ model: z.core.ZodStandardJSONSchemaPayload<_lssm_lib_schema89.TopLevelZodFromModel<_lssm_lib_schema89.SchemaModelFieldsAnyConfig<_lssm_lib_schema89.AnyFieldType | _lssm_lib_schema89.AnyEnumType | AnySchemaModel>>>;
88
88
  meta: {
89
89
  readonly name: string;
90
90
  readonly version: number;
@@ -47,7 +47,9 @@ function renderNode(node) {
47
47
  return text.trim().length ? text : "";
48
48
  }
49
49
  case "heading": {
50
- const level = Math.min(Math.max(node.attrs?.level ?? 1, 1), 6);
50
+ const levelAttr = node.attrs?.level;
51
+ const levelVal = typeof levelAttr === "number" ? levelAttr : 1;
52
+ const level = Math.min(Math.max(levelVal, 1), 6);
51
53
  return `${"#".repeat(level)} ${renderInline(node.content)}`.trim();
52
54
  }
53
55
  case "bullet_list": return renderList(node.content, false);
@@ -124,6 +126,7 @@ function createDefaultTransformEngine() {
124
126
  let cur = root;
125
127
  for (let i = 0; i < segs.length - 1; i++) {
126
128
  const k = segs[i];
129
+ if (!k) continue;
127
130
  if (cur && typeof cur === "object" && k in cur) cur = cur[k];
128
131
  else return;
129
132
  }
@@ -245,7 +248,7 @@ function registerReactToMarkdownRenderer(engine, componentMap) {
245
248
  });
246
249
  engine.prependRegister({
247
250
  target: "markdown",
248
- async render(desc, ctx) {
251
+ async render(desc, _ctx) {
249
252
  if (desc.source.type !== "component") throw new Error("React-to-markdown renderer only handles component presentations");
250
253
  const { renderToStaticMarkup } = await import("react-dom/server");
251
254
  const Component = componentMap[desc.source.componentKey];
@@ -7,9 +7,9 @@ declare class PromptRegistry {
7
7
  /** Register a prompt. Throws on duplicate name+version. */
8
8
  register<I extends z$1.ZodType>(p: PromptSpec<I>): this;
9
9
  /** List all registered prompts. */
10
- list(): PromptSpec<any>[];
10
+ list(): PromptSpec<z$1.ZodType<unknown, unknown, z$1.core.$ZodTypeInternals<unknown, unknown>>>[];
11
11
  /** Get prompt by name; when version omitted, returns highest version. */
12
- get(name: string, version?: number): PromptSpec<any> | undefined;
12
+ get(name: string, version?: number): PromptSpec<z$1.ZodType<unknown, unknown, z$1.core.$ZodTypeInternals<unknown, unknown>>> | undefined;
13
13
  }
14
14
  //#endregion
15
15
  export { PromptRegistry };
@@ -10,7 +10,7 @@ import { AnySchemaModel } from "@lssm/lib.schema";
10
10
  type OperationKey = `${string}.v${number}`;
11
11
  declare function opKey(name: string, version: number): OperationKey;
12
12
  type AnySpec = ContractSpec<AnySchemaModel, AnySchemaModel | ResourceRefDescriptor<boolean>>;
13
- type AnyHandler = (args: any, ctx: HandlerCtx) => Promise<unknown>;
13
+ type AnyHandler = (args: unknown, ctx: HandlerCtx) => Promise<unknown>;
14
14
  /**
15
15
  * In-memory registry for ContractSpecs and their bound handlers.
16
16
  * Provides validation, policy enforcement, and guarded event emission at execute time.
package/dist/registry.js CHANGED
@@ -125,6 +125,7 @@ var SpecRegistry = class {
125
125
  const parsedInput = spec.io.input?.getZod().parse(rawInput);
126
126
  if (ctx.decide) {
127
127
  const [service, command] = spec.meta.name.split(".");
128
+ if (!service || !command) throw new Error(`Invalid spec name: ${spec.meta.name}`);
128
129
  const decision = await ctx.decide({
129
130
  service,
130
131
  command,
package/dist/resources.js CHANGED
@@ -21,7 +21,10 @@ var ResourceRegistry = class {
21
21
  if (!m) continue;
22
22
  const names = [...tmpl.meta.uriTemplate.matchAll(/\{([^}]+)\}/g)].map((x) => x[1]);
23
23
  const params = {};
24
- names.forEach((n, i) => params[n] = decodeURIComponent(m[i + 1]));
24
+ names.forEach((n, i) => {
25
+ const val = m[i + 1];
26
+ if (n && val) params[n] = decodeURIComponent(val);
27
+ });
25
28
  return {
26
29
  tmpl,
27
30
  params