@ontologie/cli 0.1.0-preview.1

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 (266) hide show
  1. package/README.md +492 -0
  2. package/dist/cache/keys.d.ts +11 -0
  3. package/dist/cache/keys.d.ts.map +1 -0
  4. package/dist/cache/keys.js +14 -0
  5. package/dist/cache/keys.js.map +1 -0
  6. package/dist/cache/store.d.ts +23 -0
  7. package/dist/cache/store.d.ts.map +1 -0
  8. package/dist/cache/store.js +160 -0
  9. package/dist/cache/store.js.map +1 -0
  10. package/dist/cli-compat.d.ts +6 -0
  11. package/dist/cli-compat.d.ts.map +1 -0
  12. package/dist/cli-compat.js +11 -0
  13. package/dist/cli-compat.js.map +1 -0
  14. package/dist/cli.d.ts +30 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +119 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/client.d.ts +7 -0
  19. package/dist/client.d.ts.map +1 -0
  20. package/dist/client.js +15 -0
  21. package/dist/client.js.map +1 -0
  22. package/dist/commands/actions.d.ts +22 -0
  23. package/dist/commands/actions.d.ts.map +1 -0
  24. package/dist/commands/actions.js +211 -0
  25. package/dist/commands/actions.js.map +1 -0
  26. package/dist/commands/agent-files.d.ts +27 -0
  27. package/dist/commands/agent-files.d.ts.map +1 -0
  28. package/dist/commands/agent-files.js +167 -0
  29. package/dist/commands/agent-files.js.map +1 -0
  30. package/dist/commands/agent.d.ts +23 -0
  31. package/dist/commands/agent.d.ts.map +1 -0
  32. package/dist/commands/agent.js +314 -0
  33. package/dist/commands/agent.js.map +1 -0
  34. package/dist/commands/audit.d.ts +11 -0
  35. package/dist/commands/audit.d.ts.map +1 -0
  36. package/dist/commands/audit.js +94 -0
  37. package/dist/commands/audit.js.map +1 -0
  38. package/dist/commands/cache.d.ts +8 -0
  39. package/dist/commands/cache.d.ts.map +1 -0
  40. package/dist/commands/cache.js +40 -0
  41. package/dist/commands/cache.js.map +1 -0
  42. package/dist/commands/capabilities.d.ts +56 -0
  43. package/dist/commands/capabilities.d.ts.map +1 -0
  44. package/dist/commands/capabilities.js +304 -0
  45. package/dist/commands/capabilities.js.map +1 -0
  46. package/dist/commands/check.d.ts +7 -0
  47. package/dist/commands/check.d.ts.map +1 -0
  48. package/dist/commands/check.js +16 -0
  49. package/dist/commands/check.js.map +1 -0
  50. package/dist/commands/config.d.ts +6 -0
  51. package/dist/commands/config.d.ts.map +1 -0
  52. package/dist/commands/config.js +133 -0
  53. package/dist/commands/config.js.map +1 -0
  54. package/dist/commands/context.d.ts +6 -0
  55. package/dist/commands/context.d.ts.map +1 -0
  56. package/dist/commands/context.js +226 -0
  57. package/dist/commands/context.js.map +1 -0
  58. package/dist/commands/dev.d.ts +15 -0
  59. package/dist/commands/dev.d.ts.map +1 -0
  60. package/dist/commands/dev.js +62 -0
  61. package/dist/commands/dev.js.map +1 -0
  62. package/dist/commands/docs-alias.d.ts +14 -0
  63. package/dist/commands/docs-alias.d.ts.map +1 -0
  64. package/dist/commands/docs-alias.js +28 -0
  65. package/dist/commands/docs-alias.js.map +1 -0
  66. package/dist/commands/docs.d.ts +6 -0
  67. package/dist/commands/docs.d.ts.map +1 -0
  68. package/dist/commands/docs.js +67 -0
  69. package/dist/commands/docs.js.map +1 -0
  70. package/dist/commands/doctor.d.ts +6 -0
  71. package/dist/commands/doctor.d.ts.map +1 -0
  72. package/dist/commands/doctor.js +161 -0
  73. package/dist/commands/doctor.js.map +1 -0
  74. package/dist/commands/generate.d.ts +7 -0
  75. package/dist/commands/generate.d.ts.map +1 -0
  76. package/dist/commands/generate.js +36 -0
  77. package/dist/commands/generate.js.map +1 -0
  78. package/dist/commands/graph.d.ts +9 -0
  79. package/dist/commands/graph.d.ts.map +1 -0
  80. package/dist/commands/graph.js +149 -0
  81. package/dist/commands/graph.js.map +1 -0
  82. package/dist/commands/import.d.ts +19 -0
  83. package/dist/commands/import.d.ts.map +1 -0
  84. package/dist/commands/import.js +330 -0
  85. package/dist/commands/import.js.map +1 -0
  86. package/dist/commands/index.d.ts +80 -0
  87. package/dist/commands/index.d.ts.map +1 -0
  88. package/dist/commands/index.js +345 -0
  89. package/dist/commands/index.js.map +1 -0
  90. package/dist/commands/init.d.ts +7 -0
  91. package/dist/commands/init.d.ts.map +1 -0
  92. package/dist/commands/init.js +101 -0
  93. package/dist/commands/init.js.map +1 -0
  94. package/dist/commands/instances.d.ts +7 -0
  95. package/dist/commands/instances.d.ts.map +1 -0
  96. package/dist/commands/instances.js +418 -0
  97. package/dist/commands/instances.js.map +1 -0
  98. package/dist/commands/keys.d.ts +6 -0
  99. package/dist/commands/keys.d.ts.map +1 -0
  100. package/dist/commands/keys.js +113 -0
  101. package/dist/commands/keys.js.map +1 -0
  102. package/dist/commands/knowledge.d.ts +6 -0
  103. package/dist/commands/knowledge.d.ts.map +1 -0
  104. package/dist/commands/knowledge.js +76 -0
  105. package/dist/commands/knowledge.js.map +1 -0
  106. package/dist/commands/model.d.ts +3 -0
  107. package/dist/commands/model.d.ts.map +1 -0
  108. package/dist/commands/model.js +40 -0
  109. package/dist/commands/model.js.map +1 -0
  110. package/dist/commands/nodes.d.ts +6 -0
  111. package/dist/commands/nodes.d.ts.map +1 -0
  112. package/dist/commands/nodes.js +111 -0
  113. package/dist/commands/nodes.js.map +1 -0
  114. package/dist/commands/openapi.d.ts +7 -0
  115. package/dist/commands/openapi.d.ts.map +1 -0
  116. package/dist/commands/openapi.js +17 -0
  117. package/dist/commands/openapi.js.map +1 -0
  118. package/dist/commands/plan.d.ts +19 -0
  119. package/dist/commands/plan.d.ts.map +1 -0
  120. package/dist/commands/plan.js +563 -0
  121. package/dist/commands/plan.js.map +1 -0
  122. package/dist/commands/process.d.ts +3 -0
  123. package/dist/commands/process.d.ts.map +1 -0
  124. package/dist/commands/process.js +67 -0
  125. package/dist/commands/process.js.map +1 -0
  126. package/dist/commands/query.d.ts +26 -0
  127. package/dist/commands/query.d.ts.map +1 -0
  128. package/dist/commands/query.js +253 -0
  129. package/dist/commands/query.js.map +1 -0
  130. package/dist/commands/schema.d.ts +24 -0
  131. package/dist/commands/schema.d.ts.map +1 -0
  132. package/dist/commands/schema.js +933 -0
  133. package/dist/commands/schema.js.map +1 -0
  134. package/dist/commands/search.d.ts +10 -0
  135. package/dist/commands/search.d.ts.map +1 -0
  136. package/dist/commands/search.js +74 -0
  137. package/dist/commands/search.js.map +1 -0
  138. package/dist/commands/shared.d.ts +32 -0
  139. package/dist/commands/shared.d.ts.map +1 -0
  140. package/dist/commands/shared.js +63 -0
  141. package/dist/commands/shared.js.map +1 -0
  142. package/dist/commands/usage.d.ts +6 -0
  143. package/dist/commands/usage.d.ts.map +1 -0
  144. package/dist/commands/usage.js +86 -0
  145. package/dist/commands/usage.js.map +1 -0
  146. package/dist/commands/validators.d.ts +30 -0
  147. package/dist/commands/validators.d.ts.map +1 -0
  148. package/dist/commands/validators.js +93 -0
  149. package/dist/commands/validators.js.map +1 -0
  150. package/dist/commands/whoami.d.ts +6 -0
  151. package/dist/commands/whoami.d.ts.map +1 -0
  152. package/dist/commands/whoami.js +48 -0
  153. package/dist/commands/whoami.js.map +1 -0
  154. package/dist/config.d.ts +47 -0
  155. package/dist/config.d.ts.map +1 -0
  156. package/dist/config.js +127 -0
  157. package/dist/config.js.map +1 -0
  158. package/dist/credentials.d.ts +9 -0
  159. package/dist/credentials.d.ts.map +1 -0
  160. package/dist/credentials.js +79 -0
  161. package/dist/credentials.js.map +1 -0
  162. package/dist/keychain.d.ts +9 -0
  163. package/dist/keychain.d.ts.map +1 -0
  164. package/dist/keychain.js +51 -0
  165. package/dist/keychain.js.map +1 -0
  166. package/dist/output/csv.d.ts +5 -0
  167. package/dist/output/csv.d.ts.map +1 -0
  168. package/dist/output/csv.js +22 -0
  169. package/dist/output/csv.js.map +1 -0
  170. package/dist/output/envelope.schema.d.ts +1053 -0
  171. package/dist/output/envelope.schema.d.ts.map +1 -0
  172. package/dist/output/envelope.schema.js +256 -0
  173. package/dist/output/envelope.schema.js.map +1 -0
  174. package/dist/output/errors.d.ts +58 -0
  175. package/dist/output/errors.d.ts.map +1 -0
  176. package/dist/output/errors.js +339 -0
  177. package/dist/output/errors.js.map +1 -0
  178. package/dist/output/formatter.d.ts +27 -0
  179. package/dist/output/formatter.d.ts.map +1 -0
  180. package/dist/output/formatter.js +80 -0
  181. package/dist/output/formatter.js.map +1 -0
  182. package/dist/output/json.d.ts +41 -0
  183. package/dist/output/json.d.ts.map +1 -0
  184. package/dist/output/json.js +215 -0
  185. package/dist/output/json.js.map +1 -0
  186. package/dist/output/markdown.d.ts +6 -0
  187. package/dist/output/markdown.d.ts.map +1 -0
  188. package/dist/output/markdown.js +51 -0
  189. package/dist/output/markdown.js.map +1 -0
  190. package/dist/output/meta.d.ts +49 -0
  191. package/dist/output/meta.d.ts.map +1 -0
  192. package/dist/output/meta.js +96 -0
  193. package/dist/output/meta.js.map +1 -0
  194. package/dist/output/plain.d.ts +6 -0
  195. package/dist/output/plain.d.ts.map +1 -0
  196. package/dist/output/plain.js +51 -0
  197. package/dist/output/plain.js.map +1 -0
  198. package/dist/output/table.d.ts +5 -0
  199. package/dist/output/table.d.ts.map +1 -0
  200. package/dist/output/table.js +54 -0
  201. package/dist/output/table.js.map +1 -0
  202. package/dist/output/types.d.ts +54 -0
  203. package/dist/output/types.d.ts.map +1 -0
  204. package/dist/output/types.js +80 -0
  205. package/dist/output/types.js.map +1 -0
  206. package/dist/output/warnings.d.ts +15 -0
  207. package/dist/output/warnings.d.ts.map +1 -0
  208. package/dist/output/warnings.js +46 -0
  209. package/dist/output/warnings.js.map +1 -0
  210. package/dist/output/yaml.d.ts +6 -0
  211. package/dist/output/yaml.d.ts.map +1 -0
  212. package/dist/output/yaml.js +9 -0
  213. package/dist/output/yaml.js.map +1 -0
  214. package/dist/schema/breaking-changes.d.ts +17 -0
  215. package/dist/schema/breaking-changes.d.ts.map +1 -0
  216. package/dist/schema/breaking-changes.js +108 -0
  217. package/dist/schema/breaking-changes.js.map +1 -0
  218. package/dist/schema/helpers.d.ts +18 -0
  219. package/dist/schema/helpers.d.ts.map +1 -0
  220. package/dist/schema/helpers.js +48 -0
  221. package/dist/schema/helpers.js.map +1 -0
  222. package/dist/schema/load-schema-file.d.ts +13 -0
  223. package/dist/schema/load-schema-file.d.ts.map +1 -0
  224. package/dist/schema/load-schema-file.js +88 -0
  225. package/dist/schema/load-schema-file.js.map +1 -0
  226. package/dist/schema/lockfile.d.ts +6 -0
  227. package/dist/schema/lockfile.d.ts.map +1 -0
  228. package/dist/schema/lockfile.js +34 -0
  229. package/dist/schema/lockfile.js.map +1 -0
  230. package/dist/schema/manifest-client.d.ts +31 -0
  231. package/dist/schema/manifest-client.d.ts.map +1 -0
  232. package/dist/schema/manifest-client.js +282 -0
  233. package/dist/schema/manifest-client.js.map +1 -0
  234. package/dist/schema/output.d.ts +38 -0
  235. package/dist/schema/output.d.ts.map +1 -0
  236. package/dist/schema/output.js +95 -0
  237. package/dist/schema/output.js.map +1 -0
  238. package/dist/stdin.d.ts +8 -0
  239. package/dist/stdin.d.ts.map +1 -0
  240. package/dist/stdin.js +21 -0
  241. package/dist/stdin.js.map +1 -0
  242. package/dist/templates/basic.d.ts +6 -0
  243. package/dist/templates/basic.d.ts.map +1 -0
  244. package/dist/templates/basic.js +90 -0
  245. package/dist/templates/basic.js.map +1 -0
  246. package/dist/templates/contract-review.d.ts +9 -0
  247. package/dist/templates/contract-review.d.ts.map +1 -0
  248. package/dist/templates/contract-review.js +172 -0
  249. package/dist/templates/contract-review.js.map +1 -0
  250. package/dist/templates/customer-onboarding.d.ts +9 -0
  251. package/dist/templates/customer-onboarding.d.ts.map +1 -0
  252. package/dist/templates/customer-onboarding.js +176 -0
  253. package/dist/templates/customer-onboarding.js.map +1 -0
  254. package/dist/templates/index.d.ts +11 -0
  255. package/dist/templates/index.d.ts.map +1 -0
  256. package/dist/templates/index.js +16 -0
  257. package/dist/templates/index.js.map +1 -0
  258. package/dist/templates/react-dashboard.d.ts +6 -0
  259. package/dist/templates/react-dashboard.d.ts.map +1 -0
  260. package/dist/templates/react-dashboard.js +146 -0
  261. package/dist/templates/react-dashboard.js.map +1 -0
  262. package/dist/templates/vendor-risk.d.ts +9 -0
  263. package/dist/templates/vendor-risk.d.ts.map +1 -0
  264. package/dist/templates/vendor-risk.js +186 -0
  265. package/dist/templates/vendor-risk.js.map +1 -0
  266. package/package.json +47 -0
@@ -0,0 +1,418 @@
1
+ /**
2
+ * ontologie instance -- list, get, create, update, delete object instances
3
+ */
4
+ import { resolveConfig } from '../config.js';
5
+ import { createDfClient } from '../client.js';
6
+ import { buildCliMeta, extractMetaFromHeaders } from '../output/meta.js';
7
+ import { output } from '../output/formatter.js';
8
+ import { withErrorHandler, getGlobalFlags, resolveTypeId } from './shared.js';
9
+ import { validateRunGuards } from './actions.js';
10
+ import { getExitCode } from '../output/errors.js';
11
+ // ---------------------------------------------------------------------------
12
+ // Mutation error enrichment (403 mutableBy, 409 OCC)
13
+ // ---------------------------------------------------------------------------
14
+ export function rethrowMutationError(err) {
15
+ const status = err?.statusCode ?? err?.status;
16
+ if (status === 409) {
17
+ throw Object.assign(new Error('Version conflict. Refetch the instance and retry with the updated version (--version <n>).'), { code: 'CONFLICT_ERROR', statusCode: 409 });
18
+ }
19
+ if (status === 403) {
20
+ const serverMsg = err?.body?.message
21
+ ?? err?.message ?? '';
22
+ if (/mutableBy|WRITE_POLICY/i.test(serverMsg)) {
23
+ throw Object.assign(new Error(`Write policy violation: this instance type restricts mutations. ${serverMsg}`), { code: 'WRITE_POLICY_VIOLATION', statusCode: 403 });
24
+ }
25
+ }
26
+ throw err;
27
+ }
28
+ // ---------------------------------------------------------------------------
29
+ // Command registration
30
+ // ---------------------------------------------------------------------------
31
+ export function registerInstances(program) {
32
+ const instance = program
33
+ .command('instance')
34
+ .description('Object instance operations (Digital Twin)');
35
+ const getFormat = () => {
36
+ const f = getGlobalFlags(program);
37
+ return f.format === 'json' ? 'json' : f.format === 'jsonl' ? 'jsonl' : 'text';
38
+ };
39
+ // -------------------------------------------------------------------------
40
+ // instance list <type>
41
+ // -------------------------------------------------------------------------
42
+ instance
43
+ .command('list <type>')
44
+ .description('List instances of a given object type')
45
+ .option('--status <status>', 'Filter by status')
46
+ .option('--source-type <sourceType>', 'Filter by source type')
47
+ .option('--search <search>', 'Full-text search filter')
48
+ .option('--sort-by <field>', 'Sort by field')
49
+ .option('--sort-order <order>', 'Sort order: asc or desc', 'asc')
50
+ .option('--select <fields>', 'Comma-separated fields to include')
51
+ .option('--ids-only', 'Output only IDs (one per line)')
52
+ .action(async (typeName, opts) => withErrorHandler(async () => {
53
+ const flags = getGlobalFlags(program);
54
+ const config = resolveConfig(flags);
55
+ const client = createDfClient(config);
56
+ const typeId = await resolveTypeId(client, typeName);
57
+ const query = {
58
+ limit: flags.limit || 100,
59
+ status: opts.status,
60
+ source_type: opts.sourceType,
61
+ search: opts.search,
62
+ sort_by: opts.sortBy,
63
+ sort_order: opts.sortOrder,
64
+ select: opts.select,
65
+ };
66
+ const response = await client.transport.requestWithHeaders({
67
+ method: 'GET',
68
+ path: `/api/v1/object-types/${typeId}/instances`,
69
+ query,
70
+ });
71
+ const items = response.data || [];
72
+ const pagination = response.metadata?.pagination;
73
+ const limit = Number(flags.limit) || 100;
74
+ const page = pagination && pagination.total != null && pagination.total > limit
75
+ ? { limit, nextCursor: null, hasMore: (pagination.offset ?? 0) + limit < pagination.total }
76
+ : null;
77
+ if (opts.idsOnly) {
78
+ for (const item of items) {
79
+ process.stdout.write(String(item.id) + '\n');
80
+ }
81
+ return;
82
+ }
83
+ const headerMeta = extractMetaFromHeaders(response.headers);
84
+ const meta = buildCliMeta({
85
+ command: 'instance.list',
86
+ workspaceId: config.workspaceId,
87
+ apiUrl: config.apiUrl,
88
+ ...headerMeta,
89
+ });
90
+ output(items, meta, flags, ['id', 'external_id', 'status', 'source_type', 'created_at'], page);
91
+ }, getFormat)());
92
+ // -------------------------------------------------------------------------
93
+ // instance get <id>
94
+ // -------------------------------------------------------------------------
95
+ instance
96
+ .command('get <id>')
97
+ .description('Get a specific instance by ID')
98
+ .option('--include <sections>', 'Include related data: links, properties (comma-separated)')
99
+ .action(async (id, opts) => withErrorHandler(async () => {
100
+ const flags = getGlobalFlags(program);
101
+ const config = resolveConfig(flags);
102
+ const client = createDfClient(config);
103
+ const query = {};
104
+ if (opts.include) {
105
+ query.include = opts.include;
106
+ }
107
+ const response = await client.transport.requestWithHeaders({
108
+ method: 'GET',
109
+ path: `/api/v1/instances/${id}`,
110
+ query,
111
+ });
112
+ const inst = response.data;
113
+ if (!inst) {
114
+ throw Object.assign(new Error(`Instance ${id} not found`), { status: 404 });
115
+ }
116
+ // If --include links, fetch graph neighbors and merge
117
+ const includes = (opts.include || '').split(',').map((s) => s.trim());
118
+ if (includes.includes('links')) {
119
+ try {
120
+ const neighborsResponse = await client.transport.request({
121
+ method: 'GET',
122
+ path: `/api/v1/graph/neighbors/${id}`,
123
+ query: { depth: '1' },
124
+ });
125
+ inst.links = neighborsResponse;
126
+ }
127
+ catch {
128
+ // Graph endpoint may not be available — degrade gracefully
129
+ inst.links = { error: 'Graph neighbors endpoint unavailable' };
130
+ }
131
+ }
132
+ const headerMeta = extractMetaFromHeaders(response.headers);
133
+ const meta = buildCliMeta({
134
+ command: 'instance.get',
135
+ workspaceId: config.workspaceId,
136
+ apiUrl: config.apiUrl,
137
+ ...headerMeta,
138
+ });
139
+ output(inst, meta, flags);
140
+ }, getFormat)());
141
+ // -------------------------------------------------------------------------
142
+ // instance create <type>
143
+ // -------------------------------------------------------------------------
144
+ instance
145
+ .command('create <type>')
146
+ .description('Create a new instance of a given object type')
147
+ .requiredOption('--data <json>', 'Instance data as JSON string')
148
+ .option('--external-id <externalId>', 'External identifier')
149
+ .option('--source-type <sourceType>', 'Source type (manual, import, api, connector)')
150
+ .option('--dry-run', 'Preview the operation without persisting')
151
+ .option('--apply-plan <planId>', 'Apply a previously validated plan')
152
+ .option('--plan-hash <hash>', 'Plan hash from dry-run (used with --apply-plan)')
153
+ .option('--idempotency-key <key>', 'Idempotency key for safe retries')
154
+ .option('--yes', 'Skip confirmation for direct execution')
155
+ .action(async (typeName, opts) => withErrorHandler(async () => {
156
+ const flags = getGlobalFlags(program);
157
+ const config = resolveConfig(flags);
158
+ const client = createDfClient(config);
159
+ const typeId = await resolveTypeId(client, typeName);
160
+ let data;
161
+ try {
162
+ data = JSON.parse(opts.data);
163
+ }
164
+ catch {
165
+ throw Object.assign(new Error('--data must be valid JSON'), { code: 'VALIDATION_ERROR', statusCode: 422 });
166
+ }
167
+ // Guards: mutual exclusion, plan safety, confirmation
168
+ validateRunGuards(opts);
169
+ const body = {
170
+ data,
171
+ externalId: opts.externalId,
172
+ sourceType: opts.sourceType,
173
+ };
174
+ if (opts.dryRun) {
175
+ // Attempt dry-run endpoint; fall back to local preview if unavailable
176
+ try {
177
+ const response = await client.transport.requestWithHeaders({
178
+ method: 'POST',
179
+ path: `/api/v1/object-types/${typeId}/instances/dry-run`,
180
+ body,
181
+ });
182
+ const headerMeta = extractMetaFromHeaders(response.headers);
183
+ const meta = buildCliMeta({
184
+ command: 'instance.create.dry-run',
185
+ workspaceId: config.workspaceId,
186
+ apiUrl: config.apiUrl,
187
+ ...headerMeta,
188
+ });
189
+ output(response.data, meta, flags);
190
+ }
191
+ catch (err) {
192
+ if (err?.statusCode === 404 || err?.status === 404) {
193
+ // Dry-run endpoint not available — simulate locally
194
+ const plan = {
195
+ action: 'create',
196
+ typeId,
197
+ typeName,
198
+ body,
199
+ note: 'Dry-run endpoint not available. This is a local preview of the request payload.',
200
+ };
201
+ const meta = buildCliMeta({
202
+ command: 'instance.create.dry-run',
203
+ workspaceId: config.workspaceId,
204
+ apiUrl: config.apiUrl,
205
+ });
206
+ output(plan, meta, flags);
207
+ }
208
+ else {
209
+ throw err;
210
+ }
211
+ }
212
+ process.exitCode = getExitCode("PRECONDITION_FAILED");
213
+ return;
214
+ }
215
+ // Apply-plan path: merge planId/planHash into body
216
+ if (opts.applyPlan) {
217
+ body.planId = opts.applyPlan;
218
+ if (opts.planHash)
219
+ body.planHash = opts.planHash;
220
+ }
221
+ try {
222
+ const response = await client.transport.requestWithHeaders({
223
+ method: 'POST',
224
+ path: `/api/v1/object-types/${typeId}/instances`,
225
+ body,
226
+ idempotencyKey: opts.idempotencyKey,
227
+ });
228
+ const headerMeta = extractMetaFromHeaders(response.headers);
229
+ const meta = buildCliMeta({
230
+ command: 'instance.create',
231
+ workspaceId: config.workspaceId,
232
+ apiUrl: config.apiUrl,
233
+ ...headerMeta,
234
+ });
235
+ output(response.data, meta, flags);
236
+ }
237
+ catch (err) {
238
+ rethrowMutationError(err);
239
+ }
240
+ }, getFormat)());
241
+ // -------------------------------------------------------------------------
242
+ // instance update <id>
243
+ // -------------------------------------------------------------------------
244
+ instance
245
+ .command('update <id>')
246
+ .description('Update an existing instance')
247
+ .requiredOption('--data <json>', 'Updated data as JSON string')
248
+ .option('--version <n>', 'Expected version for optimistic concurrency control')
249
+ .option('--dry-run', 'Preview the operation without persisting')
250
+ .option('--apply-plan <planId>', 'Apply a previously validated plan')
251
+ .option('--plan-hash <hash>', 'Plan hash from dry-run (used with --apply-plan)')
252
+ .option('--idempotency-key <key>', 'Idempotency key for safe retries')
253
+ .option('--yes', 'Skip confirmation for direct execution')
254
+ .action(async (id, opts) => withErrorHandler(async () => {
255
+ const flags = getGlobalFlags(program);
256
+ const config = resolveConfig(flags);
257
+ const client = createDfClient(config);
258
+ let data;
259
+ try {
260
+ data = JSON.parse(opts.data);
261
+ }
262
+ catch {
263
+ throw Object.assign(new Error('--data must be valid JSON'), { code: 'VALIDATION_ERROR', statusCode: 422 });
264
+ }
265
+ // Guards: mutual exclusion, plan safety, confirmation
266
+ validateRunGuards(opts);
267
+ const body = {
268
+ data,
269
+ };
270
+ if (opts.version != null) {
271
+ body.expectedVersion = Number(opts.version);
272
+ }
273
+ if (opts.dryRun) {
274
+ // Attempt dry-run endpoint; fall back to local preview if unavailable
275
+ try {
276
+ const response = await client.transport.requestWithHeaders({
277
+ method: 'POST',
278
+ path: `/api/v1/instances/${id}/dry-run`,
279
+ body,
280
+ });
281
+ const headerMeta = extractMetaFromHeaders(response.headers);
282
+ const meta = buildCliMeta({
283
+ command: 'instance.update.dry-run',
284
+ workspaceId: config.workspaceId,
285
+ apiUrl: config.apiUrl,
286
+ ...headerMeta,
287
+ });
288
+ output(response.data, meta, flags);
289
+ }
290
+ catch (err) {
291
+ if (err?.statusCode === 404 || err?.status === 404) {
292
+ // Dry-run endpoint not available — simulate locally
293
+ const plan = {
294
+ action: 'update',
295
+ instanceId: id,
296
+ body,
297
+ note: 'Dry-run endpoint not available. This is a local preview of the update payload.',
298
+ };
299
+ const meta = buildCliMeta({
300
+ command: 'instance.update.dry-run',
301
+ workspaceId: config.workspaceId,
302
+ apiUrl: config.apiUrl,
303
+ });
304
+ output(plan, meta, flags);
305
+ }
306
+ else {
307
+ throw err;
308
+ }
309
+ }
310
+ process.exitCode = getExitCode("PRECONDITION_FAILED");
311
+ return;
312
+ }
313
+ // Apply-plan path: merge planId/planHash into body
314
+ if (opts.applyPlan) {
315
+ body.planId = opts.applyPlan;
316
+ if (opts.planHash)
317
+ body.planHash = opts.planHash;
318
+ }
319
+ try {
320
+ const response = await client.transport.requestWithHeaders({
321
+ method: 'PUT',
322
+ path: `/api/v1/instances/${id}`,
323
+ body,
324
+ idempotencyKey: opts.idempotencyKey,
325
+ });
326
+ const headerMeta = extractMetaFromHeaders(response.headers);
327
+ const meta = buildCliMeta({
328
+ command: 'instance.update',
329
+ workspaceId: config.workspaceId,
330
+ apiUrl: config.apiUrl,
331
+ ...headerMeta,
332
+ });
333
+ output(response.data, meta, flags);
334
+ }
335
+ catch (err) {
336
+ rethrowMutationError(err);
337
+ }
338
+ }, getFormat)());
339
+ // -------------------------------------------------------------------------
340
+ // instance delete <id>
341
+ // -------------------------------------------------------------------------
342
+ instance
343
+ .command('delete <id>')
344
+ .description('Delete an instance')
345
+ .option('--dry-run', 'Preview the operation without persisting')
346
+ .option('--apply-plan <planId>', 'Apply a previously validated plan')
347
+ .option('--plan-hash <hash>', 'Plan hash from dry-run (used with --apply-plan)')
348
+ .option('--idempotency-key <key>', 'Idempotency key for safe retries')
349
+ .option('--yes', 'Skip confirmation for direct execution')
350
+ .action(async (id, opts) => withErrorHandler(async () => {
351
+ const flags = getGlobalFlags(program);
352
+ const config = resolveConfig(flags);
353
+ const client = createDfClient(config);
354
+ // Guards: mutual exclusion, plan safety, confirmation
355
+ validateRunGuards(opts);
356
+ if (opts.dryRun) {
357
+ // Attempt dry-run endpoint; fall back to local preview if unavailable
358
+ try {
359
+ const response = await client.transport.requestWithHeaders({
360
+ method: 'POST',
361
+ path: `/api/v1/instances/${id}/delete/dry-run`,
362
+ });
363
+ const headerMeta = extractMetaFromHeaders(response.headers);
364
+ const meta = buildCliMeta({
365
+ command: 'instance.delete.dry-run',
366
+ workspaceId: config.workspaceId,
367
+ apiUrl: config.apiUrl,
368
+ ...headerMeta,
369
+ });
370
+ output(response.data, meta, flags);
371
+ }
372
+ catch (err) {
373
+ if (err?.statusCode === 404 || err?.status === 404) {
374
+ const plan = {
375
+ action: 'delete',
376
+ instanceId: id,
377
+ note: 'Dry-run endpoint not available. This is a local preview — the instance will be permanently deleted.',
378
+ };
379
+ const meta = buildCliMeta({
380
+ command: 'instance.delete.dry-run',
381
+ workspaceId: config.workspaceId,
382
+ apiUrl: config.apiUrl,
383
+ });
384
+ output(plan, meta, flags);
385
+ }
386
+ else {
387
+ throw err;
388
+ }
389
+ }
390
+ process.exitCode = getExitCode("PRECONDITION_FAILED");
391
+ return;
392
+ }
393
+ // Apply-plan or direct execution path
394
+ const body = opts.applyPlan
395
+ ? { planId: opts.applyPlan, ...(opts.planHash ? { planHash: opts.planHash } : {}) }
396
+ : undefined;
397
+ try {
398
+ const response = await client.transport.requestWithHeaders({
399
+ method: 'DELETE',
400
+ path: `/api/v1/instances/${id}`,
401
+ ...(body ? { body } : {}),
402
+ idempotencyKey: opts.idempotencyKey,
403
+ });
404
+ const headerMeta = extractMetaFromHeaders(response.headers);
405
+ const meta = buildCliMeta({
406
+ command: 'instance.delete',
407
+ workspaceId: config.workspaceId,
408
+ apiUrl: config.apiUrl,
409
+ ...headerMeta,
410
+ });
411
+ output(response.data ?? { ok: true, id }, meta, flags);
412
+ }
413
+ catch (err) {
414
+ rethrowMutationError(err);
415
+ }
416
+ }, getFormat)());
417
+ }
418
+ //# sourceMappingURL=instances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instances.js","sourceRoot":"","sources":["../../src/commands/instances.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ontologie keys -- list, create, revoke API keys
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare function registerKeys(program: Command): void;
6
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/commands/keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwHnD"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * ontologie keys -- list, create, revoke API keys
3
+ */
4
+ import { resolveConfig } from '../config.js';
5
+ import { createDfClient } from '../client.js';
6
+ import { buildCliMeta, extractMetaFromHeaders } from '../output/meta.js';
7
+ import { output } from '../output/formatter.js';
8
+ import { getExitCode } from '../output/errors.js';
9
+ import { withErrorHandler } from './shared.js';
10
+ export function registerKeys(program) {
11
+ const keys = program
12
+ .command('keys')
13
+ .description('API key operations');
14
+ keys
15
+ .command('list')
16
+ .description('List API keys')
17
+ .option('--ids-only', 'Output only IDs (one per line)')
18
+ .action(async (opts) => withErrorHandler(async () => {
19
+ const flags = program.opts();
20
+ const config = resolveConfig(flags);
21
+ const client = createDfClient(config);
22
+ const response = await client.transport.requestWithHeaders({
23
+ method: 'GET',
24
+ path: '/api/api-keys',
25
+ });
26
+ const items = response.data || [];
27
+ if (opts.idsOnly) {
28
+ for (const item of items) {
29
+ process.stdout.write(String(item.id) + '\n');
30
+ }
31
+ return;
32
+ }
33
+ const headerMeta = extractMetaFromHeaders(response.headers);
34
+ const meta = buildCliMeta({
35
+ command: 'keys.list',
36
+ workspaceId: config.workspaceId,
37
+ apiUrl: config.apiUrl,
38
+ ...headerMeta,
39
+ });
40
+ output(items, meta, flags, ['id', 'name', 'prefix', 'scopes', 'status', 'last_used_at', 'created_at']);
41
+ })());
42
+ keys
43
+ .command('create <name>')
44
+ .description('Create a new API key')
45
+ .option('--scopes <scopes>', 'Comma-separated scopes (e.g., schema.read,instances.read,actions.describe)')
46
+ .option('--expires <duration>', 'Expiration duration (e.g., 30d, 90d, 1y)')
47
+ .action(async (name, opts) => withErrorHandler(async () => {
48
+ const flags = program.opts();
49
+ const config = resolveConfig(flags);
50
+ const client = createDfClient(config);
51
+ const body = { name };
52
+ if (opts.scopes) {
53
+ body.permissions = opts.scopes.split(',').map((s) => s.trim());
54
+ }
55
+ if (opts.expires) {
56
+ body.expiresIn = opts.expires;
57
+ }
58
+ const response = await client.transport.requestWithHeaders({
59
+ method: 'POST',
60
+ path: '/api/api-keys',
61
+ body,
62
+ });
63
+ const result = response.data || {};
64
+ const headerMeta = extractMetaFromHeaders(response.headers);
65
+ const meta = buildCliMeta({
66
+ command: 'keys.create',
67
+ workspaceId: config.workspaceId,
68
+ apiUrl: config.apiUrl,
69
+ ...headerMeta,
70
+ });
71
+ output(result, meta, flags);
72
+ // The plaintext key is only returned once -- display it prominently on stderr
73
+ // so it is visible even when stdout is piped to a file or another tool.
74
+ if (result.key || result.plaintext || result.apiKey) {
75
+ const plaintext = String(result.key ?? result.plaintext ?? result.apiKey);
76
+ process.stderr.write('\n');
77
+ process.stderr.write('=========================================================\n');
78
+ process.stderr.write(' IMPORTANT: Save this API key now -- it will NOT be\n');
79
+ process.stderr.write(' shown again.\n');
80
+ process.stderr.write('\n');
81
+ process.stderr.write(` ${plaintext}\n`);
82
+ process.stderr.write('=========================================================\n');
83
+ process.stderr.write('\n');
84
+ }
85
+ })());
86
+ keys
87
+ .command('revoke <id>')
88
+ .description('Revoke an API key')
89
+ .option('--force', 'Skip confirmation and revoke immediately')
90
+ .action(async (id, opts) => withErrorHandler(async () => {
91
+ const flags = program.opts();
92
+ const config = resolveConfig(flags);
93
+ const client = createDfClient(config);
94
+ if (!opts.force) {
95
+ process.stderr.write(`Warning: Revoking API key ${id} is irreversible.\n`);
96
+ process.stderr.write('Re-run with --force to confirm.\n');
97
+ process.exit(getExitCode('CONFIRMATION_REQUIRED'));
98
+ }
99
+ const response = await client.transport.requestWithHeaders({
100
+ method: 'DELETE',
101
+ path: `/api/api-keys/${id}`,
102
+ });
103
+ const headerMeta = extractMetaFromHeaders(response.headers);
104
+ const meta = buildCliMeta({
105
+ command: 'keys.revoke',
106
+ workspaceId: config.workspaceId,
107
+ apiUrl: config.apiUrl,
108
+ ...headerMeta,
109
+ });
110
+ output(response.data ?? { id, status: 'revoked' }, meta, flags);
111
+ })());
112
+ }
113
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/commands/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * ontologie knowledge -- search and retrieve knowledge base documents
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare function registerKnowledge(program: Command): void;
6
+ //# sourceMappingURL=knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../src/commands/knowledge.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6ExD"}