@loxtep/sdk 0.9.16 → 0.9.17

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 (54) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +4 -4
  3. package/dist/client/bundles-types.d.ts +44 -0
  4. package/dist/client/bundles-types.d.ts.map +1 -0
  5. package/dist/client/bundles-types.js +6 -0
  6. package/dist/client/bundles-types.js.map +1 -0
  7. package/dist/client/bundles.d.ts +17 -0
  8. package/dist/client/bundles.d.ts.map +1 -0
  9. package/dist/client/bundles.js +94 -0
  10. package/dist/client/bundles.js.map +1 -0
  11. package/dist/client/define.d.ts +5 -1
  12. package/dist/client/define.d.ts.map +1 -1
  13. package/dist/client/define.js +3 -1
  14. package/dist/client/define.js.map +1 -1
  15. package/dist/client/index.d.ts +8 -1
  16. package/dist/client/index.d.ts.map +1 -1
  17. package/dist/client/index.js.map +1 -1
  18. package/dist/client/loxtep-client.d.ts +2 -2
  19. package/dist/client/loxtep-client.d.ts.map +1 -1
  20. package/dist/client/loxtep-client.js +11 -2
  21. package/dist/client/loxtep-client.js.map +1 -1
  22. package/dist/client/meaning.d.ts +8 -1
  23. package/dist/client/meaning.d.ts.map +1 -1
  24. package/dist/client/meaning.js +4 -1
  25. package/dist/client/meaning.js.map +1 -1
  26. package/dist/client/proposals-types.d.ts +68 -0
  27. package/dist/client/proposals-types.d.ts.map +1 -0
  28. package/dist/client/proposals-types.js +6 -0
  29. package/dist/client/proposals-types.js.map +1 -0
  30. package/dist/client/proposals.d.ts +24 -0
  31. package/dist/client/proposals.d.ts.map +1 -0
  32. package/dist/client/proposals.js +140 -0
  33. package/dist/client/proposals.js.map +1 -0
  34. package/dist/client/shapes-types.d.ts +102 -0
  35. package/dist/client/shapes-types.d.ts.map +1 -0
  36. package/dist/client/shapes-types.js +14 -0
  37. package/dist/client/shapes-types.js.map +1 -0
  38. package/dist/client/shapes.d.ts +19 -0
  39. package/dist/client/shapes.d.ts.map +1 -0
  40. package/dist/client/shapes.js +110 -0
  41. package/dist/client/shapes.js.map +1 -0
  42. package/dist/client/thesaurus-types.d.ts +112 -5
  43. package/dist/client/thesaurus-types.d.ts.map +1 -1
  44. package/dist/client/thesaurus-types.js +2 -1
  45. package/dist/client/thesaurus-types.js.map +1 -1
  46. package/dist/client/thesaurus.d.ts +17 -3
  47. package/dist/client/thesaurus.d.ts.map +1 -1
  48. package/dist/client/thesaurus.js +120 -14
  49. package/dist/client/thesaurus.js.map +1 -1
  50. package/dist/config/platform-request-url.d.ts.map +1 -1
  51. package/dist/config/platform-request-url.js +5 -1
  52. package/dist/config/platform-request-url.js.map +1 -1
  53. package/docs/sdk-mcp-mapping.md +70 -3
  54. package/package.json +1 -1
@@ -1,17 +1,35 @@
1
1
  /**
2
- * Thesaurus API types (LOX-1476). Canonical correlation keys and per-system aliases.
2
+ * Thesaurus API types (LOX-1476 + Phase 2 meaning parity).
3
+ * Canonical correlation keys, per-system aliases, enterprise overrides, sync.
3
4
  */
5
+ export type ThesaurusScheme = 'field' | 'entity' | 'custom';
6
+ export type OverrideSource = 'inferred_rejection' | 'govern_step' | 'manual' | 'agent_gap';
7
+ export type OverrideStatus = 'active' | 'proposed' | 'retired';
8
+ export interface ThesaurusAlias {
9
+ system?: string;
10
+ path: string;
11
+ }
4
12
  export interface ThesaurusTerm {
5
13
  term_id: string;
6
14
  organization_id: string;
7
15
  canonical_key: string;
16
+ scheme?: ThesaurusScheme;
8
17
  precedence: number;
9
- aliases: Array<{
10
- system?: string;
11
- path: string;
12
- }>;
18
+ aliases: ThesaurusAlias[];
19
+ definition?: string | null;
20
+ broader?: string[];
21
+ narrower?: string[];
22
+ related?: string[];
23
+ is_override?: boolean;
24
+ enterprise_definition?: string | null;
25
+ baseline_assumption?: string | null;
26
+ divergence_reason?: string | null;
27
+ override_source?: OverrideSource | null;
28
+ override_status?: OverrideStatus | null;
29
+ linked_data_product_ids?: string[];
13
30
  created_at: string;
14
31
  updated_at: string;
32
+ deleted_at?: string | null;
15
33
  }
16
34
  export interface ThesaurusListResponse {
17
35
  success: true;
@@ -25,4 +43,93 @@ export interface ThesaurusResolveResponse {
25
43
  canonical_key: string;
26
44
  };
27
45
  }
46
+ export interface CreateThesaurusTermInput {
47
+ canonical_key: string;
48
+ scheme?: ThesaurusScheme;
49
+ precedence?: number;
50
+ aliases?: ThesaurusAlias[];
51
+ definition?: string | null;
52
+ broader?: string[];
53
+ narrower?: string[];
54
+ related?: string[];
55
+ domain?: string;
56
+ organization_id?: string;
57
+ }
58
+ export interface UpdateThesaurusTermInput {
59
+ canonical_key?: string;
60
+ scheme?: ThesaurusScheme;
61
+ precedence?: number;
62
+ aliases?: ThesaurusAlias[];
63
+ definition?: string | null;
64
+ broader?: string[];
65
+ narrower?: string[];
66
+ related?: string[];
67
+ domain?: string;
68
+ is_override?: boolean;
69
+ enterprise_definition?: string | null;
70
+ baseline_assumption?: string | null;
71
+ divergence_reason?: string | null;
72
+ override_source?: OverrideSource | null;
73
+ override_status?: OverrideStatus | null;
74
+ linked_data_product_ids?: string[];
75
+ organization_id?: string;
76
+ }
77
+ export interface DeleteThesaurusTermResult {
78
+ term: ThesaurusTerm;
79
+ warnings?: string[];
80
+ }
81
+ export interface SyncVocabularyTermInput {
82
+ canonical_key: string;
83
+ scheme: ThesaurusScheme;
84
+ aliases?: ThesaurusAlias[];
85
+ broader?: string[];
86
+ narrower?: string[];
87
+ related?: string[];
88
+ }
89
+ export interface SyncVocabularyInput {
90
+ domain: string;
91
+ terms: SyncVocabularyTermInput[];
92
+ mode: 'full_sync' | 'additive_only';
93
+ dry_run?: boolean;
94
+ organization_id?: string;
95
+ }
96
+ export interface SyncVocabularyConflict {
97
+ canonical_key: string;
98
+ reason: string;
99
+ }
100
+ export interface SyncVocabularyResult {
101
+ created: {
102
+ count: number;
103
+ term_ids: string[];
104
+ };
105
+ updated: {
106
+ count: number;
107
+ term_ids: string[];
108
+ };
109
+ tombstoned: {
110
+ count: number;
111
+ term_ids: string[];
112
+ };
113
+ unchanged: {
114
+ count: number;
115
+ };
116
+ conflicts: SyncVocabularyConflict[];
117
+ dry_run: boolean;
118
+ }
119
+ export interface CreateEnterpriseOverrideInput {
120
+ canonical_key: string;
121
+ enterprise_definition: string;
122
+ divergence_reason: string;
123
+ scheme?: ThesaurusScheme;
124
+ aliases?: ThesaurusAlias[];
125
+ definition?: string | null;
126
+ precedence?: number;
127
+ broader?: string[];
128
+ narrower?: string[];
129
+ related?: string[];
130
+ baseline_assumption?: string | null;
131
+ linked_data_product_ids?: string[];
132
+ override_source?: OverrideSource;
133
+ organization_id?: string;
134
+ }
28
135
  //# sourceMappingURL=thesaurus-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thesaurus-types.d.ts","sourceRoot":"","sources":["../../src/client/thesaurus-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QAAE,KAAK,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QAAE,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC"}
1
+ {"version":3,"file":"thesaurus-types.d.ts","sourceRoot":"","sources":["../../src/client/thesaurus-types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Thesaurus API types (LOX-1476). Canonical correlation keys and per-system aliases.
2
+ * Thesaurus API types (LOX-1476 + Phase 2 meaning parity).
3
+ * Canonical correlation keys, per-system aliases, enterprise overrides, sync.
3
4
  */
4
5
  export {};
5
6
  //# sourceMappingURL=thesaurus-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thesaurus-types.js","sourceRoot":"","sources":["../../src/client/thesaurus-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
1
+ {"version":3,"file":"thesaurus-types.js","sourceRoot":"","sources":["../../src/client/thesaurus-types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,11 +1,24 @@
1
1
  /**
2
- * Thesaurus API (LOX-1476). listTerms, resolveCanonicalKey.
3
- * Backend: GET /graph/organizations/:organization_id/thesaurus.
2
+ * Thesaurus API (LOX-1476 + Phase 2 meaning parity).
3
+ * MCP: loxtep_meaning list_terms / get_term / create_term / update_term /
4
+ * delete_term / sync_vocabulary / create_enterprise_override / append synonym.
5
+ *
6
+ * Backend:
7
+ * GET|POST /graph/organizations/:organization_id/thesaurus
8
+ * GET|PUT|DELETE /graph/organizations/:organization_id/thesaurus/:term_id
9
+ * POST /graph/organizations/:organization_id/thesaurus/sync
10
+ * POST /graph/organizations/:organization_id/thesaurus/synonyms
4
11
  */
5
12
  import type { LoxtepHttpClient } from '../http/client.js';
6
- import type { ThesaurusTerm } from './thesaurus-types.js';
13
+ import type { CreateEnterpriseOverrideInput, CreateThesaurusTermInput, DeleteThesaurusTermResult, SyncVocabularyInput, SyncVocabularyResult, ThesaurusTerm, UpdateThesaurusTermInput } from './thesaurus-types.js';
7
14
  export declare function createThesaurusApi(http: LoxtepHttpClient, organization_id?: string): {
8
15
  list_terms: (orgId?: string) => Promise<ThesaurusTerm[]>;
16
+ get_term: (term_id: string, orgId?: string) => Promise<ThesaurusTerm>;
17
+ create_term: (input: CreateThesaurusTermInput) => Promise<ThesaurusTerm>;
18
+ update_term: (term_id: string, input: UpdateThesaurusTermInput) => Promise<ThesaurusTerm>;
19
+ delete_term: (term_id: string, orgId?: string) => Promise<DeleteThesaurusTermResult>;
20
+ sync_vocabulary: (input: SyncVocabularyInput) => Promise<SyncVocabularyResult>;
21
+ create_enterprise_override: (input: CreateEnterpriseOverrideInput) => Promise<ThesaurusTerm>;
9
22
  resolve_canonical_key: (key_or_alias: string, orgId?: string) => Promise<string | null>;
10
23
  append_synonym: (canonical_key: string, alias_path: string, options?: {
11
24
  system?: string;
@@ -13,4 +26,5 @@ export declare function createThesaurusApi(http: LoxtepHttpClient, organization_
13
26
  orgId?: string;
14
27
  }) => Promise<ThesaurusTerm>;
15
28
  };
29
+ export type ThesaurusApi = ReturnType<typeof createThesaurusApi>;
16
30
  //# sourceMappingURL=thesaurus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"thesaurus.d.ts","sourceRoot":"","sources":["../../src/client/thesaurus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAyB,MAAM,sBAAsB,CAAC;AAYjF,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,gBAAgB,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB;IACD,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACzD,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxF,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAC/D,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7B,CA0CA"}
1
+ {"version":3,"file":"thesaurus.d.ts","sourceRoot":"","sources":["../../src/client/thesaurus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EACV,6BAA6B,EAC7B,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EAEb,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AA0B9B,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,gBAAgB,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB;IACD,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACzD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACtE,WAAW,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACzE,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1F,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACrF,eAAe,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/E,0BAA0B,EAAE,CAC1B,KAAK,EAAE,6BAA6B,KACjC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5B,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxF,cAAc,EAAE,CACd,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAC/D,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7B,CAuIA;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -1,24 +1,132 @@
1
1
  /**
2
- * Thesaurus API (LOX-1476). listTerms, resolveCanonicalKey.
3
- * Backend: GET /graph/organizations/:organization_id/thesaurus.
2
+ * Thesaurus API (LOX-1476 + Phase 2 meaning parity).
3
+ * MCP: loxtep_meaning list_terms / get_term / create_term / update_term /
4
+ * delete_term / sync_vocabulary / create_enterprise_override / append synonym.
5
+ *
6
+ * Backend:
7
+ * GET|POST /graph/organizations/:organization_id/thesaurus
8
+ * GET|PUT|DELETE /graph/organizations/:organization_id/thesaurus/:term_id
9
+ * POST /graph/organizations/:organization_id/thesaurus/sync
10
+ * POST /graph/organizations/:organization_id/thesaurus/synonyms
4
11
  */
12
+ function unwrapData(res) {
13
+ return (res.data ?? res);
14
+ }
15
+ function requireOrg(organization_id, orgId) {
16
+ const org = orgId ?? organization_id;
17
+ if (!org) {
18
+ throw new Error('organization_id required (pass explicitly or set on client)');
19
+ }
20
+ return org;
21
+ }
22
+ function thesaurusBase(org) {
23
+ return `/graph/organizations/${encodeURIComponent(org)}/thesaurus`;
24
+ }
5
25
  async function fetchTerms(http, organization_id) {
6
- const res = await http.get(`/graph/organizations/${encodeURIComponent(organization_id)}/thesaurus`);
26
+ const res = await http.get(thesaurusBase(organization_id));
7
27
  return res?.data?.terms ?? [];
8
28
  }
9
29
  export function createThesaurusApi(http, organization_id) {
10
- const resolveOrg = (orgId) => orgId ?? organization_id;
11
30
  return {
12
31
  async list_terms(orgId) {
13
- const org = resolveOrg(orgId);
14
- if (!org)
15
- throw new Error('organization_id required (pass to list_terms or set on client)');
32
+ const org = requireOrg(organization_id, orgId);
16
33
  return fetchTerms(http, org);
17
34
  },
35
+ async get_term(term_id, orgId) {
36
+ if (!term_id)
37
+ throw new Error('term_id is required');
38
+ const org = requireOrg(organization_id, orgId);
39
+ const res = await http.get(`${thesaurusBase(org)}/${encodeURIComponent(term_id)}`);
40
+ return unwrapData(res);
41
+ },
42
+ async create_term(input) {
43
+ const org = requireOrg(organization_id, input.organization_id);
44
+ const body = {
45
+ canonical_key: input.canonical_key,
46
+ scheme: input.scheme ?? 'field',
47
+ precedence: input.precedence ?? 100,
48
+ aliases: input.aliases ?? [],
49
+ };
50
+ if (input.definition !== undefined)
51
+ body.definition = input.definition;
52
+ if (input.broader !== undefined)
53
+ body.broader = input.broader;
54
+ if (input.narrower !== undefined)
55
+ body.narrower = input.narrower;
56
+ if (input.related !== undefined)
57
+ body.related = input.related;
58
+ if (input.domain !== undefined)
59
+ body.domain = input.domain;
60
+ const res = await http.post(thesaurusBase(org), body);
61
+ return unwrapData(res);
62
+ },
63
+ async update_term(term_id, input) {
64
+ if (!term_id)
65
+ throw new Error('term_id is required');
66
+ const org = requireOrg(organization_id, input.organization_id);
67
+ const body = {};
68
+ for (const [key, value] of Object.entries(input)) {
69
+ if (key === 'organization_id')
70
+ continue;
71
+ if (value !== undefined)
72
+ body[key] = value;
73
+ }
74
+ const res = await http.put(`${thesaurusBase(org)}/${encodeURIComponent(term_id)}`, body);
75
+ return unwrapData(res);
76
+ },
77
+ async delete_term(term_id, orgId) {
78
+ if (!term_id)
79
+ throw new Error('term_id is required');
80
+ const org = requireOrg(organization_id, orgId);
81
+ const res = await http.delete(`${thesaurusBase(org)}/${encodeURIComponent(term_id)}`);
82
+ const envelope = res;
83
+ return {
84
+ term: unwrapData(res),
85
+ warnings: envelope.warnings,
86
+ };
87
+ },
88
+ async sync_vocabulary(input) {
89
+ const org = requireOrg(organization_id, input.organization_id);
90
+ const body = {
91
+ domain: input.domain,
92
+ terms: input.terms,
93
+ mode: input.mode,
94
+ dry_run: input.dry_run ?? false,
95
+ };
96
+ const res = await http.post(`${thesaurusBase(org)}/sync`, body);
97
+ return unwrapData(res);
98
+ },
99
+ async create_enterprise_override(input) {
100
+ const org = requireOrg(organization_id, input.organization_id);
101
+ const body = {
102
+ canonical_key: input.canonical_key,
103
+ enterprise_definition: input.enterprise_definition,
104
+ divergence_reason: input.divergence_reason,
105
+ is_override: true,
106
+ override_source: input.override_source ?? 'manual',
107
+ scheme: input.scheme ?? 'field',
108
+ precedence: input.precedence ?? 100,
109
+ aliases: input.aliases ?? [],
110
+ };
111
+ if (input.definition !== undefined)
112
+ body.definition = input.definition;
113
+ if (input.broader !== undefined)
114
+ body.broader = input.broader;
115
+ if (input.narrower !== undefined)
116
+ body.narrower = input.narrower;
117
+ if (input.related !== undefined)
118
+ body.related = input.related;
119
+ if (input.baseline_assumption !== undefined) {
120
+ body.baseline_assumption = input.baseline_assumption;
121
+ }
122
+ if (input.linked_data_product_ids !== undefined) {
123
+ body.linked_data_product_ids = input.linked_data_product_ids;
124
+ }
125
+ const res = await http.post(thesaurusBase(org), body);
126
+ return unwrapData(res);
127
+ },
18
128
  async resolve_canonical_key(key_or_alias, orgId) {
19
- const org = resolveOrg(orgId);
20
- if (!org)
21
- throw new Error('organization_id required (pass to resolve_canonical_key or set on client)');
129
+ const org = requireOrg(organization_id, orgId);
22
130
  const terms = await fetchTerms(http, org);
23
131
  const k = key_or_alias.toLowerCase();
24
132
  for (const term of terms) {
@@ -31,10 +139,8 @@ export function createThesaurusApi(http, organization_id) {
31
139
  return null;
32
140
  },
33
141
  async append_synonym(canonical_key, alias_path, options) {
34
- const org = resolveOrg(options?.orgId);
35
- if (!org)
36
- throw new Error('organization_id required (pass options.orgId or set on client)');
37
- const res = await http.post(`/graph/organizations/${encodeURIComponent(org)}/thesaurus/synonyms`, {
142
+ const org = requireOrg(organization_id, options?.orgId);
143
+ const res = await http.post(`${thesaurusBase(org)}/synonyms`, {
38
144
  canonical_key,
39
145
  alias_path,
40
146
  system: options?.system,
@@ -1 +1 @@
1
- {"version":3,"file":"thesaurus.js","sourceRoot":"","sources":["../../src/client/thesaurus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,KAAK,UAAU,UAAU,CACvB,IAAsB,EACtB,eAAuB;IAEvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CACxB,wBAAwB,kBAAkB,CAAC,eAAe,CAAC,YAAY,CACxE,CAAC;IACF,OAAO,GAAG,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAsB,EACtB,eAAwB;IAUxB,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,KAAK,IAAI,eAAe,CAAC;IAChE,OAAO;QACL,KAAK,CAAC,UAAU,CAAC,KAAc;YAC7B,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;YAC5F,OAAO,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,CAAC,qBAAqB,CAAC,YAAoB,EAAE,KAAc;YAC9D,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,GAAG;gBACN,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;YAC/F,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC,aAAa,CAAC;gBACtE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC1E,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC,aAAa,CAAC;YACnD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,cAAc,CAClB,aAAqB,EACrB,UAAkB,EAClB,OAAkE;YAElE,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;YAC5F,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CACzB,wBAAwB,kBAAkB,CAAC,GAAG,CAAC,qBAAqB,EACpE;gBACE,aAAa;gBACb,UAAU;gBACV,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,GAAG;aACvC,CACF,CAAC;YACF,OAAO,GAAG,CAAC,IAAI,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"thesaurus.js","sourceRoot":"","sources":["../../src/client/thesaurus.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"platform-request-url.d.ts","sourceRoot":"","sources":["../../src/config/platform-request-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqDH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAqC7E;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,EAmBA,CAAC"}
1
+ {"version":3,"file":"platform-request-url.d.ts","sourceRoot":"","sources":["../../src/config/platform-request-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqDH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAqC7E;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,EAuBA,CAAC"}
@@ -131,7 +131,11 @@ export const SDK_HTTP_PATHS_BY_FEATURE = [
131
131
  { feature: 'connectors', pathPrefixes: ['/connectors'] },
132
132
  { feature: 'observe, queues, data_products trace (HTTP fallback)', pathPrefixes: ['/observe'] },
133
133
  { feature: 'discovery (MCP tools)', pathPrefixes: ['/ai/mcp/'] },
134
- { feature: 'thesaurus', pathPrefixes: ['/graph/organizations/'] },
134
+ { feature: 'thesaurus, ontology', pathPrefixes: ['/graph/organizations/'] },
135
+ {
136
+ feature: 'semantic-layer (search, shapes, proposals, bundles)',
137
+ pathPrefixes: ['/semantic-layer'],
138
+ },
135
139
  { feature: 'process_intelligence, procedures', pathPrefixes: ['/process-intelligence'] },
136
140
  { feature: 'rate limits', pathPrefixes: ['/rate-limits'] },
137
141
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"platform-request-url.js","sourceRoot":"","sources":["../../src/config/platform-request-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,yGAAyG;AACzG,MAAM,+BAA+B,GAAG,qBAAqB,CAAC;AAE9D,MAAM,sBAAsB,GAAqC;IAC/D,mEAAmE;IACnE,OAAO,EAAE,KAAK;IACd,8DAA8D;IAC9D,aAAa,EAAE,KAAK;CACrB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,8BAA8B,GAAwB,IAAI,GAAG,CAAC;IAClE,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,WAAW;IACX,WAAW;IACX,QAAQ;IACR,SAAS;IACT,SAAS;IACT,oBAAoB;IACpB,cAAc;IACd,QAAQ;IACR,IAAI;CACL,CAAC,CAAC;AAEH,SAAS,4BAA4B;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;AAClE,CAAC;AAED;;;;GAIG;AACH,gGAAgG;AAChG,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,4BAA4B,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,sBAAsB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,IAAY;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;IAC/D,IAAI,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,OAAO,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;IAEjD,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,MAAM,IAAI,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,GAAG,IAAI,6BAA6B,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;IACxF,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAY;YAAE,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;QACjD,OAAO,GAAG,IAAI,IAAI,YAAY,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;IAChC,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,IAAI,IAAI,YAAY,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAGhC;IACJ;QACE,OAAO,EAAE,6CAA6C;QACtD,YAAY,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;KAC/C;IACD;QACE,OAAO,EAAE,oEAAoE;QAC7E,YAAY,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC;KAC3C;IACD,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,SAAS,CAAC,EAAE;IACjD,EAAE,OAAO,EAAE,yCAAyC,EAAE,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE;IACpF,EAAE,OAAO,EAAE,wCAAwC,EAAE,YAAY,EAAE,CAAC,gBAAgB,CAAC,EAAE;IACvF,EAAE,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC,aAAa,CAAC,EAAE;IACpE,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,aAAa,CAAC,EAAE;IACxD,EAAE,OAAO,EAAE,sDAAsD,EAAE,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE;IAC/F,EAAE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE;IAChE,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,uBAAuB,CAAC,EAAE;IACjE,EAAE,OAAO,EAAE,kCAAkC,EAAE,YAAY,EAAE,CAAC,uBAAuB,CAAC,EAAE;IACxF,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,cAAc,CAAC,EAAE;CAC3D,CAAC"}
1
+ {"version":3,"file":"platform-request-url.js","sourceRoot":"","sources":["../../src/config/platform-request-url.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,8 @@ deprecation aliases.
14
14
  | `loxtep_connect` | `client.connect` | `.connectors.*`, `.templates.*` |
15
15
  | `loxtep_workspace` | `client.workspace` | `.projects.*`, `.instances.*` (`list`/`get`/`create`; **`get_stream_config` is REST/CLI only** — not an MCP op). `.versions` (REST pending); planned MCP `get_project_workspace_status` → `ProjectWorkspaceStatus` ([docs](./project-workspace-status.md)) |
16
16
  | `loxtep_build` | `client.build` | `.workflows.*`, `.triggers.*`, `.data_products.*`, `.targets.*`, deploy writes, `.get_writer({ bot_id, queue })` escape hatch |
17
- | `loxtep_define` | `client.define` | `.schemas.*`, `.quality.*`, `.standards.*`, `.data_contracts.*`, `.domains.*` |
18
- | `loxtep_meaning` | `client.meaning` | `.thesaurus.*`, `.ontology.*`, `.packs.*`, `.semantic.*` (search/artifact/completeness) |
17
+ | `loxtep_define` | `client.define` | `.schemas.*` (data-product), `.shapes.*` (domain canonical shapes), `.quality.*`, `.standards.*`, `.data_contracts.*`, `.domains.*` |
18
+ | `loxtep_meaning` | `client.meaning` | `.thesaurus.*`, `.ontology.*`, `.packs.*`, `.semantic.*`, `.proposals.*`, `.bundles.import` |
19
19
  | `loxtep_review` | `client.review` | `.approvals.*`, `.improvements.*`, `.cdlc.*` (get/transition/propagate/lineage/deps + `list_review_queue`); `.mining.*` (`run_mining_pass`, `list_candidates`, `act_on_candidate`). CLI: `loxtep cdlc …`, `loxtep candidates list|act` |
20
20
  | `loxtep_query` | `client.query` | `.catalog.*`, `.discovery.*`, `.query()`, `.list_tables()`, `.search()` |
21
21
  | `loxtep_observe` | `client.observe` | `.status()`, `.stream_config()`, queue `.open_reader` / `.open_writer`, `.list_deployments()`, `.get_deployment()`, trust signals |
@@ -58,9 +58,31 @@ Bus physical names (`LeoCron`, `LeoS3`, …): Node `loxtep instances stream-conf
58
58
  or `client.workspace.instances.get_stream_config(id)` (Python same method). Not
59
59
  MCP `list_instances` or `get_sdk_config`.
60
60
 
61
+ ## Meaning: thesaurus / vocabulary (Phase 2)
62
+
63
+ MCP `loxtep_meaning` thesaurus ops map to `client.meaning.thesaurus`:
64
+
65
+ | MCP operation | SDK | REST |
66
+ | --- | --- | --- |
67
+ | `list_terms` | `client.meaning.thesaurus.list_terms()` | `GET /graph/organizations/{org}/thesaurus` |
68
+ | `get_term` | `.get_term(term_id)` | `GET …/thesaurus/{term_id}` |
69
+ | `create_term` | `.create_term({ canonical_key, aliases, … })` | `POST …/thesaurus` |
70
+ | `update_term` | `.update_term(term_id, { … })` | `PUT …/thesaurus/{term_id}` |
71
+ | `delete_term` | `.delete_term(term_id)` | `DELETE …/thesaurus/{term_id}` |
72
+ | `sync_vocabulary` | `.sync_vocabulary({ domain, terms, mode, dry_run? })` | `POST …/thesaurus/sync` |
73
+ | `create_enterprise_override` | `.create_enterprise_override({ canonical_key, enterprise_definition, divergence_reason, … })` | `POST …/thesaurus` (`is_override: true`) |
74
+ | `resolve_canonical_key` | `.resolve_canonical_key(key_or_alias)` | client-side over `list_terms` |
75
+ | append synonym (SDK) | `.append_synonym(canonical_key, alias_path, …)` | `POST …/thesaurus/synonyms` |
76
+
77
+ MCP-only (no SDK yet): `list_enterprise_overrides`, `resolve_semantic_gap`,
78
+ namespace-mapping CRUD (`register_namespace_mapping`, `list_namespace_mappings`,
79
+ `get_namespace_mapping`).
80
+
61
81
  ## Meaning: ontology concepts (LOX-1241)
62
82
 
63
- MCP `loxtep_meaning` ontology ops map to `client.meaning.ontology`:
83
+ MCP `loxtep_meaning` ontology ops map to `client.meaning.ontology`.
84
+ `node_type` is a **lowercase** enum: `entity` \| `microservice` \| `taxonomy` \|
85
+ `pattern` \| `custom` (not `Entity`).
64
86
 
65
87
  | MCP operation | SDK |
66
88
  | --- | --- |
@@ -74,6 +96,10 @@ MCP `loxtep_meaning` ontology ops map to `client.meaning.ontology`:
74
96
 
75
97
  REST: `/graph/organizations/{org}/ontology/concepts` and `…/relationships`.
76
98
 
99
+ Ontology concepts are **graph types and relationships** between them. Defining
100
+ **meaning** for agents/stewards is primarily **terms** (`thesaurus`) + **shapes**
101
+ (`client.define.shapes`).
102
+
77
103
  ## Meaning: vocabulary packs (LOX-1242)
78
104
 
79
105
  These ops live under MCP **`loxtep_meaning`** / semantic-layer (not `loxtep_define`).
@@ -117,6 +143,47 @@ Notes:
117
143
  - SDK calls the semantic-layer MS REST routes directly. MCP-only enrichments (empty-search / completeness `metadata.activation_state` from pack activation) are not duplicated — use `client.meaning.packs.get_activation_status()` when needed.
118
144
  - Pack lifecycle remains under `client.meaning.packs` (see vocabulary packs section above).
119
145
 
146
+ ## Meaning: semantic proposals (Phase 2)
147
+
148
+ Agent review of the same inbox Meaning shows. Batch helpers fan out to the
149
+ single-id PUT (no dedicated batch REST).
150
+
151
+ | Concern | SDK | REST |
152
+ | --- | --- | --- |
153
+ | list proposals | `client.meaning.proposals.list({ disposition?, proposal_type?, … })` | `GET /semantic-layer/semantic-proposals` |
154
+ | accept | `.accept(semantic_proposal_id, { resolution_note? })` | `PUT …/semantic-proposals/{id}` `disposition: accepted` |
155
+ | reject | `.reject(semantic_proposal_id, { resolution_note? })` | `PUT …` `disposition: rejected` |
156
+ | batch accept / reject | `.accept_batch` / `.reject_batch` | N× PUT |
157
+
158
+ ## Meaning: semantic bundles (Phase 2)
159
+
160
+ | MCP operation | SDK | REST |
161
+ | --- | --- | --- |
162
+ | `import_semantic_bundle` | `client.meaning.bundles.import({ bundle, dry_run? })` | `POST /semantic-layer/bundles/import` |
163
+
164
+ Phase 0 error contract: result always includes `skipped_count` and `errors`.
165
+ When skips/errors exist (or HTTP 207/422 with a parseable body), the SDK sets
166
+ `partial: true` and still returns the result instead of dropping error detail.
167
+ MCP-only sibling: `export_semantic_bundle` (no SDK yet).
168
+
169
+ ## Define: domain shapes (Phase 2)
170
+
171
+ Domain / org **canonical shapes** (`domain_schemas`) — distinct from
172
+ `client.define.schemas` (data-product schema versions on `/dataproducts`).
173
+
174
+ | MCP operation | SDK | REST |
175
+ | --- | --- | --- |
176
+ | `create_schema` | `client.define.shapes.create({ name, format, … })` | `POST /semantic-layer/schemas` |
177
+ | `list_schemas` | `.list({ domain_id?, format?, search? })` | `GET /semantic-layer/schemas` |
178
+ | `get_schema` (by `schema_id`) | `.get(schema_id)` | `GET /semantic-layer/schemas/{schema_id}` |
179
+ | `apply_schema` | `.apply({ schema_id, data_product_id, schema_version_id? })` | `POST …/schemas/{schema_id}/applications` |
180
+ | `patch_schema` (align) | `.align({ schema_id, aligned_to_concept_uri })` | `PUT …/schemas/{schema_id}` |
181
+
182
+ MCP-only (no SDK yet): `update_schema`, `delete_schema`, `list_schema_versions`,
183
+ `unapply_schema`, `list_schema_applications`, `add_schema_version`,
184
+ `get_schema_impact`, `install_schema_pack`. Data-product PII tagging stays on
185
+ `client.define.schemas.tag_pii_fields`.
186
+
120
187
  ## Review: CDLC + context mining (LOX-1244…1247)
121
188
 
122
189
  MCP `loxtep_review` CDLC / mining ops map to `client.review.cdlc` and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loxtep/sdk",
3
- "version": "0.9.16",
3
+ "version": "0.9.17",
4
4
  "description": "Loxtep SDK for Node.js — the Enterprise Context Layer: data products, workflows, projects, queues, and machine-usable context for AI",
5
5
  "author": "Loxtep <engineering@loxtep.io>",
6
6
  "homepage": "https://loxtep.io",