@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
package/dist/stdin.js ADDED
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Stdin ID reader -- reads IDs line-by-line for pipe composition.
3
+ * Skips empty lines and # comments.
4
+ *
5
+ * Usage: ontologie nodes search "Client" --ids-only | ontologie graph neighbors --stdin
6
+ */
7
+ import * as readline from 'node:readline';
8
+ export async function readStdinIds() {
9
+ if (process.stdin.isTTY)
10
+ return [];
11
+ const rl = readline.createInterface({ input: process.stdin });
12
+ const ids = [];
13
+ for await (const line of rl) {
14
+ const trimmed = line.trim();
15
+ if (!trimmed || trimmed.startsWith('#'))
16
+ continue;
17
+ ids.push(trimmed);
18
+ }
19
+ return ids;
20
+ }
21
+ //# sourceMappingURL=stdin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdin.js","sourceRoot":"","sources":["../src/stdin.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Basic TypeScript template — minimal DataForge SDK project.
3
+ */
4
+ import type { TemplateSpec } from './index.js';
5
+ export declare const basicTemplate: TemplateSpec;
6
+ //# sourceMappingURL=basic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../src/templates/basic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,aAAa,EAAE,YAqF3B,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Basic TypeScript template — minimal DataForge SDK project.
3
+ */
4
+ export const basicTemplate = {
5
+ description: 'Basic TypeScript project with DataForge SDK',
6
+ files: {
7
+ 'package.json': JSON.stringify({
8
+ name: 'my-dataforge-app',
9
+ version: '0.1.0',
10
+ private: true,
11
+ type: 'module',
12
+ scripts: {
13
+ start: 'npx tsx src/index.ts',
14
+ generate: 'dataforge generate',
15
+ build: 'tsc',
16
+ doctor: 'dataforge doctor',
17
+ },
18
+ dependencies: {
19
+ '@dataforge/schema': '^0.1.0',
20
+ '@dataforge/sdk-client': '^3.3.0',
21
+ '@dataforge/sdk-types': '^3.3.0',
22
+ },
23
+ devDependencies: {
24
+ typescript: '^5.4.0',
25
+ tsx: '^4.0.0',
26
+ },
27
+ }, null, 2),
28
+ 'tsconfig.json': JSON.stringify({
29
+ compilerOptions: {
30
+ target: 'ES2022',
31
+ module: 'ESNext',
32
+ moduleResolution: 'bundler',
33
+ strict: true,
34
+ outDir: './dist',
35
+ rootDir: './src',
36
+ declaration: true,
37
+ esModuleInterop: true,
38
+ skipLibCheck: true,
39
+ },
40
+ include: ['src'],
41
+ }, null, 2),
42
+ 'src/index.ts': `import { createClient } from '@dataforge/sdk-client';
43
+
44
+ const client = createClient({
45
+ apiKey: process.env.DATAFORGE_API_KEY ?? '',
46
+ workspaceId: process.env.DATAFORGE_WORKSPACE_ID ?? '',
47
+ });
48
+
49
+ async function main() {
50
+ // Query your ontology
51
+ // const employees = await client.ontology.Employee.fetchAll();
52
+ // console.log('Employees:', employees.data.length);
53
+
54
+ console.log('DataForge SDK ready!');
55
+ console.log('Config:', { baseUrl: client.config.baseUrl });
56
+ }
57
+
58
+ main().catch(console.error);
59
+ `,
60
+ 'dataforge.schema.ts': `import { objectType, string, number, boolean, date, link } from '@dataforge/schema';
61
+
62
+ // Define your ontology types here.
63
+ // Run \`dataforge schema push --yes\` to sync with your workspace.
64
+ // Run \`dataforge schema pull\` to generate from an existing workspace.
65
+
66
+ export const Task = objectType('Task', {
67
+ title: string().required(),
68
+ description: string(),
69
+ priority: number().default(0),
70
+ isCompleted: boolean().default(false),
71
+ dueDate: date(),
72
+ });
73
+
74
+ // Example with links:
75
+ // export const Project = objectType('Project', {
76
+ // name: string().required(),
77
+ // description: string(),
78
+ // });
79
+ //
80
+ // export const Task = objectType('Task', {
81
+ // title: string().required(),
82
+ // project: link.toOne(() => Project),
83
+ // });
84
+ `,
85
+ '.env.example': `DATAFORGE_API_KEY=df_your_key_here
86
+ DATAFORGE_WORKSPACE_ID=your-workspace-uuid
87
+ `,
88
+ },
89
+ };
90
+ //# sourceMappingURL=basic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.js","sourceRoot":"","sources":["../../src/templates/basic.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,WAAW,EAAE,6CAA6C;IAC1D,KAAK,EAAE;QACL,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC;YAC7B,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,sBAAsB;gBAC7B,QAAQ,EAAE,oBAAoB;gBAC9B,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,kBAAkB;aAC3B;YACD,YAAY,EAAE;gBACZ,mBAAmB,EAAE,QAAQ;gBAC7B,uBAAuB,EAAE,QAAQ;gBACjC,sBAAsB,EAAE,QAAQ;aACjC;YACD,eAAe,EAAE;gBACf,UAAU,EAAE,QAAQ;gBACpB,GAAG,EAAE,QAAQ;aACd;SACF,EAAE,IAAI,EAAE,CAAC,CAAC;QACX,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC;YAC9B,eAAe,EAAE;gBACf,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,QAAQ;gBAChB,gBAAgB,EAAE,SAAS;gBAC3B,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,IAAI;gBACjB,eAAe,EAAE,IAAI;gBACrB,YAAY,EAAE,IAAI;aACnB;YACD,OAAO,EAAE,CAAC,KAAK,CAAC;SACjB,EAAE,IAAI,EAAE,CAAC,CAAC;QACX,cAAc,EAAE;;;;;;;;;;;;;;;;;CAiBnB;QACG,qBAAqB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;CAwB1B;QACG,cAAc,EAAE;;CAEnB;KACE;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Contract Review template — agent-ready business template.
3
+ *
4
+ * Objects: Company, Contract, Reviewer, ApprovalTask
5
+ * Actions: submitForReview, approve, reject
6
+ */
7
+ import type { TemplateSpec } from './index.js';
8
+ export declare const contractReviewTemplate: TemplateSpec;
9
+ //# sourceMappingURL=contract-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-review.d.ts","sourceRoot":"","sources":["../../src/templates/contract-review.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,sBAAsB,EAAE,YAoKpC,CAAC"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Contract Review template — agent-ready business template.
3
+ *
4
+ * Objects: Company, Contract, Reviewer, ApprovalTask
5
+ * Actions: submitForReview, approve, reject
6
+ */
7
+ export const contractReviewTemplate = {
8
+ description: 'Contract review workflow with approval actions (agent-ready)',
9
+ hasPolicy: true,
10
+ hasSeed: true,
11
+ files: {
12
+ 'package.json': JSON.stringify({
13
+ name: 'my-contract-review',
14
+ version: '0.1.0',
15
+ private: true,
16
+ type: 'module',
17
+ scripts: {
18
+ start: 'npx tsx src/index.ts',
19
+ generate: 'dataforge generate',
20
+ build: 'tsc',
21
+ 'schema:push': 'dataforge schema push --yes',
22
+ 'schema:pull': 'dataforge schema pull',
23
+ 'seed': 'dataforge import --file dataforge.seed.jsonl --format jsonl',
24
+ 'doctor': 'dataforge agent doctor --format json',
25
+ },
26
+ dependencies: {
27
+ '@dataforge/schema': '^0.1.0',
28
+ '@dataforge/sdk-client': '^3.3.0',
29
+ '@dataforge/sdk-types': '^3.3.0',
30
+ },
31
+ devDependencies: {
32
+ typescript: '^5.4.0',
33
+ tsx: '^4.0.0',
34
+ },
35
+ }, null, 2),
36
+ 'tsconfig.json': JSON.stringify({
37
+ compilerOptions: {
38
+ target: 'ES2022',
39
+ module: 'ESNext',
40
+ moduleResolution: 'bundler',
41
+ strict: true,
42
+ outDir: './dist',
43
+ rootDir: './src',
44
+ declaration: true,
45
+ esModuleInterop: true,
46
+ skipLibCheck: true,
47
+ },
48
+ include: ['src'],
49
+ }, null, 2),
50
+ 'dataforge.schema.ts': `import { objectType, string, number, boolean, date, enumType, link } from '@dataforge/schema';
51
+
52
+ // --- Enums ---
53
+
54
+ export const ContractStatus = enumType('ContractStatus', [
55
+ 'draft',
56
+ 'pending_review',
57
+ 'approved',
58
+ 'rejected',
59
+ ]);
60
+
61
+ export const TaskStatus = enumType('TaskStatus', [
62
+ 'open',
63
+ 'completed',
64
+ 'cancelled',
65
+ ]);
66
+
67
+ // --- Object Types ---
68
+
69
+ export const Company = objectType('Company', {
70
+ name: string().required(),
71
+ industry: string(),
72
+ country: string(),
73
+ });
74
+
75
+ export const Contract = objectType('Contract', {
76
+ title: string().required(),
77
+ company: link.toOne(() => Company).required(),
78
+ value: number(),
79
+ currency: string().default('USD'),
80
+ status: ContractStatus.default('draft'),
81
+ submittedAt: date(),
82
+ decidedAt: date(),
83
+ decisionComment: string(),
84
+ });
85
+
86
+ export const Reviewer = objectType('Reviewer', {
87
+ name: string().required(),
88
+ email: string().required(),
89
+ department: string(),
90
+ });
91
+
92
+ export const ApprovalTask = objectType('ApprovalTask', {
93
+ contract: link.toOne(() => Contract).required(),
94
+ reviewer: link.toOne(() => Reviewer).required(),
95
+ status: TaskStatus.default('open'),
96
+ assignedAt: date(),
97
+ completedAt: date(),
98
+ comment: string(),
99
+ });
100
+
101
+ // --- Actions ---
102
+ // Actions are declared in the schema and executed via the CLI:
103
+ // dataforge actions run Contract.submitForReview <contractId> --dry-run --format json
104
+ // dataforge actions run Contract.approve <contractId> --input '{"comment":"LGTM"}' --dry-run --format json
105
+ // dataforge actions run Contract.reject <contractId> --input '{"comment":"Needs revision"}' --dry-run --format json
106
+ `,
107
+ 'dataforge.policy.json': JSON.stringify({
108
+ version: '1.0.0',
109
+ requireDryRun: true,
110
+ forbidDelete: true,
111
+ allowedActions: [
112
+ 'Contract.submitForReview',
113
+ 'Contract.approve',
114
+ 'Contract.reject',
115
+ ],
116
+ mutableByAction: {
117
+ 'Contract.status': ['Contract.submitForReview', 'Contract.approve', 'Contract.reject'],
118
+ 'Contract.decidedAt': ['Contract.approve', 'Contract.reject'],
119
+ 'Contract.decisionComment': ['Contract.approve', 'Contract.reject'],
120
+ 'ApprovalTask.status': ['Contract.approve', 'Contract.reject'],
121
+ 'ApprovalTask.completedAt': ['Contract.approve', 'Contract.reject'],
122
+ },
123
+ }, null, 2),
124
+ 'dataforge.seed.jsonl': [
125
+ { type: 'Company', key: 'acme', data: { name: 'Acme Corp', industry: 'Technology', country: 'US' } },
126
+ { type: 'Company', key: 'globex', data: { name: 'Globex Inc', industry: 'Manufacturing', country: 'DE' } },
127
+ { type: 'Reviewer', key: 'alice', data: { name: 'Alice Martin', email: 'alice@example.com', department: 'Legal' } },
128
+ { type: 'Reviewer', key: 'bob', data: { name: 'Bob Chen', email: 'bob@example.com', department: 'Finance' } },
129
+ { type: 'Contract', key: 'con-001', data: { title: 'Acme SaaS License', company: 'acme', value: 50000, currency: 'USD', status: 'pending_review', submittedAt: '2026-04-01' } },
130
+ { type: 'Contract', key: 'con-002', data: { title: 'Acme Support Agreement', company: 'acme', value: 12000, currency: 'USD', status: 'draft' } },
131
+ { type: 'Contract', key: 'con-003', data: { title: 'Globex Supply Contract', company: 'globex', value: 85000, currency: 'EUR', status: 'pending_review', submittedAt: '2026-04-10' } },
132
+ { type: 'Contract', key: 'con-004', data: { title: 'Globex NDA', company: 'globex', value: 0, currency: 'EUR', status: 'approved', submittedAt: '2026-03-15', decidedAt: '2026-03-20', decisionComment: 'Standard NDA, approved' } },
133
+ { type: 'ApprovalTask', key: 'task-001', data: { contract: 'con-001', reviewer: 'alice', status: 'open', assignedAt: '2026-04-02' } },
134
+ { type: 'ApprovalTask', key: 'task-002', data: { contract: 'con-003', reviewer: 'bob', status: 'open', assignedAt: '2026-04-11' } },
135
+ ].map(obj => JSON.stringify(obj)).join('\n') + '\n',
136
+ 'src/index.ts': `import { createClient } from '@dataforge/sdk-client';
137
+
138
+ const client = createClient({
139
+ apiKey: process.env.DATAFORGE_API_KEY ?? '',
140
+ workspaceId: process.env.DATAFORGE_WORKSPACE_ID ?? '',
141
+ });
142
+
143
+ async function main() {
144
+ console.log('Contract Review — DataForge Demo');
145
+ console.log('================================\\n');
146
+
147
+ // 1. List pending contracts
148
+ console.log('Pending contracts:');
149
+ // const pending = await client.ontology.Contract
150
+ // .where((c: any) => c.status.eq('pending_review'))
151
+ // .fetchAll();
152
+ // for (const contract of pending.data) {
153
+ // console.log(\` - \${contract.title} (\${contract.value} \${contract.currency})\`);
154
+ // }
155
+
156
+ console.log(' (uncomment the query above after running: dataforge schema push --yes)\\n');
157
+
158
+ // 2. Dry-run an approval
159
+ console.log('To approve a contract, run:');
160
+ console.log(' dataforge actions run Contract.approve <contractId> --dry-run --format json');
161
+ console.log(' dataforge plan inspect <planId> --format markdown');
162
+ console.log(' dataforge actions run Contract.approve <contractId> --apply-plan <planId> --plan-hash <hash> --idempotency-key <key>');
163
+ }
164
+
165
+ main().catch(console.error);
166
+ `,
167
+ '.env.example': `DATAFORGE_API_KEY=df_your_key_here
168
+ DATAFORGE_WORKSPACE_ID=your-workspace-uuid
169
+ `,
170
+ },
171
+ };
172
+ //# sourceMappingURL=contract-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract-review.js","sourceRoot":"","sources":["../../src/templates/contract-review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Customer Onboarding template — agent-ready business template.
3
+ *
4
+ * Objects: Customer, OnboardingStep, Document, Assignee
5
+ * Actions: startOnboarding, completeStep, requestDocument
6
+ */
7
+ import type { TemplateSpec } from './index.js';
8
+ export declare const customerOnboardingTemplate: TemplateSpec;
9
+ //# sourceMappingURL=customer-onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-onboarding.d.ts","sourceRoot":"","sources":["../../src/templates/customer-onboarding.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,0BAA0B,EAAE,YAwKxC,CAAC"}
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Customer Onboarding template — agent-ready business template.
3
+ *
4
+ * Objects: Customer, OnboardingStep, Document, Assignee
5
+ * Actions: startOnboarding, completeStep, requestDocument
6
+ */
7
+ export const customerOnboardingTemplate = {
8
+ description: 'Customer onboarding workflow with step tracking (agent-ready)',
9
+ hasPolicy: true,
10
+ hasSeed: true,
11
+ files: {
12
+ 'package.json': JSON.stringify({
13
+ name: 'my-customer-onboarding',
14
+ version: '0.1.0',
15
+ private: true,
16
+ type: 'module',
17
+ scripts: {
18
+ start: 'npx tsx src/index.ts',
19
+ generate: 'dataforge generate',
20
+ build: 'tsc',
21
+ 'schema:push': 'dataforge schema push --yes',
22
+ 'seed': 'dataforge import --file dataforge.seed.jsonl --format jsonl',
23
+ 'doctor': 'dataforge agent doctor --format json',
24
+ },
25
+ dependencies: {
26
+ '@dataforge/schema': '^0.1.0',
27
+ '@dataforge/sdk-client': '^3.3.0',
28
+ '@dataforge/sdk-types': '^3.3.0',
29
+ },
30
+ devDependencies: {
31
+ typescript: '^5.4.0',
32
+ tsx: '^4.0.0',
33
+ },
34
+ }, null, 2),
35
+ 'tsconfig.json': JSON.stringify({
36
+ compilerOptions: {
37
+ target: 'ES2022',
38
+ module: 'ESNext',
39
+ moduleResolution: 'bundler',
40
+ strict: true,
41
+ outDir: './dist',
42
+ rootDir: './src',
43
+ declaration: true,
44
+ esModuleInterop: true,
45
+ skipLibCheck: true,
46
+ },
47
+ include: ['src'],
48
+ }, null, 2),
49
+ 'dataforge.schema.ts': `import { objectType, string, number, boolean, date, enumType, link } from '@dataforge/schema';
50
+
51
+ // --- Enums ---
52
+
53
+ export const OnboardingStatus = enumType('OnboardingStatus', [
54
+ 'not_started',
55
+ 'in_progress',
56
+ 'completed',
57
+ 'blocked',
58
+ ]);
59
+
60
+ export const StepStatus = enumType('StepStatus', [
61
+ 'pending',
62
+ 'in_progress',
63
+ 'completed',
64
+ 'skipped',
65
+ ]);
66
+
67
+ export const DocumentStatus = enumType('DocumentStatus', [
68
+ 'requested',
69
+ 'received',
70
+ 'verified',
71
+ 'rejected',
72
+ ]);
73
+
74
+ // --- Object Types ---
75
+
76
+ export const Customer = objectType('Customer', {
77
+ name: string().required(),
78
+ email: string().required(),
79
+ company: string(),
80
+ onboardingStatus: OnboardingStatus.default('not_started'),
81
+ startedAt: date(),
82
+ completedAt: date(),
83
+ });
84
+
85
+ export const Assignee = objectType('Assignee', {
86
+ name: string().required(),
87
+ email: string().required(),
88
+ role: string(),
89
+ });
90
+
91
+ export const OnboardingStep = objectType('OnboardingStep', {
92
+ customer: link.toOne(() => Customer).required(),
93
+ assignee: link.toOne(() => Assignee),
94
+ title: string().required(),
95
+ description: string(),
96
+ order: number().required(),
97
+ status: StepStatus.default('pending'),
98
+ completedAt: date(),
99
+ });
100
+
101
+ export const Document = objectType('Document', {
102
+ customer: link.toOne(() => Customer).required(),
103
+ name: string().required(),
104
+ type: string(),
105
+ status: DocumentStatus.default('requested'),
106
+ requestedAt: date(),
107
+ receivedAt: date(),
108
+ });
109
+
110
+ // --- Actions ---
111
+ // dataforge actions run Customer.startOnboarding <customerId> --dry-run --format json
112
+ // dataforge actions run OnboardingStep.completeStep <stepId> --dry-run --format json
113
+ // dataforge actions run Document.requestDocument <customerId> --input '{"name":"ID Proof","type":"identity"}' --dry-run --format json
114
+ `,
115
+ 'dataforge.policy.json': JSON.stringify({
116
+ version: '1.0.0',
117
+ requireDryRun: true,
118
+ forbidDelete: true,
119
+ allowedActions: [
120
+ 'Customer.startOnboarding',
121
+ 'OnboardingStep.completeStep',
122
+ 'Document.requestDocument',
123
+ ],
124
+ mutableByAction: {
125
+ 'Customer.onboardingStatus': ['Customer.startOnboarding'],
126
+ 'Customer.startedAt': ['Customer.startOnboarding'],
127
+ 'Customer.completedAt': ['Customer.startOnboarding'],
128
+ 'OnboardingStep.status': ['OnboardingStep.completeStep'],
129
+ 'OnboardingStep.completedAt': ['OnboardingStep.completeStep'],
130
+ 'Document.status': ['Document.requestDocument'],
131
+ 'Document.requestedAt': ['Document.requestDocument'],
132
+ },
133
+ }, null, 2),
134
+ 'dataforge.seed.jsonl': [
135
+ { type: 'Assignee', key: 'sarah', data: { name: 'Sarah Johnson', email: 'sarah@example.com', role: 'Onboarding Manager' } },
136
+ { type: 'Assignee', key: 'mike', data: { name: 'Mike Rivera', email: 'mike@example.com', role: 'Account Executive' } },
137
+ { type: 'Customer', key: 'cust-001', data: { name: 'Jane Smith', email: 'jane@startup.io', company: 'StartupIO', onboardingStatus: 'in_progress', startedAt: '2026-04-01' } },
138
+ { type: 'Customer', key: 'cust-002', data: { name: 'Tom Lee', email: 'tom@bigcorp.com', company: 'BigCorp', onboardingStatus: 'not_started' } },
139
+ { type: 'OnboardingStep', key: 'step-001', data: { customer: 'cust-001', assignee: 'sarah', title: 'Welcome call', order: 1, status: 'completed', completedAt: '2026-04-02' } },
140
+ { type: 'OnboardingStep', key: 'step-002', data: { customer: 'cust-001', assignee: 'sarah', title: 'Account setup', order: 2, status: 'in_progress' } },
141
+ { type: 'OnboardingStep', key: 'step-003', data: { customer: 'cust-001', assignee: 'mike', title: 'Integration review', order: 3, status: 'pending' } },
142
+ { type: 'Document', key: 'doc-001', data: { customer: 'cust-001', name: 'Service Agreement', type: 'contract', status: 'received', requestedAt: '2026-04-01', receivedAt: '2026-04-03' } },
143
+ { type: 'Document', key: 'doc-002', data: { customer: 'cust-001', name: 'Company Registration', type: 'identity', status: 'requested', requestedAt: '2026-04-02' } },
144
+ ].map(obj => JSON.stringify(obj)).join('\n') + '\n',
145
+ 'src/index.ts': `import { createClient } from '@dataforge/sdk-client';
146
+
147
+ const client = createClient({
148
+ apiKey: process.env.DATAFORGE_API_KEY ?? '',
149
+ workspaceId: process.env.DATAFORGE_WORKSPACE_ID ?? '',
150
+ });
151
+
152
+ async function main() {
153
+ console.log('Customer Onboarding — DataForge Demo');
154
+ console.log('=====================================\\n');
155
+
156
+ // 1. List customers not yet started
157
+ console.log('To start onboarding for a customer:');
158
+ console.log(' dataforge actions run Customer.startOnboarding <customerId> --dry-run --format json\\n');
159
+
160
+ // 2. Complete a step
161
+ console.log('To complete an onboarding step:');
162
+ console.log(' dataforge actions run OnboardingStep.completeStep <stepId> --dry-run --format json\\n');
163
+
164
+ // 3. Request a document
165
+ console.log('To request a document:');
166
+ console.log(' dataforge actions run Document.requestDocument <customerId> --input \'{"name":"Tax ID","type":"tax"}\' --dry-run --format json');
167
+ }
168
+
169
+ main().catch(console.error);
170
+ `,
171
+ '.env.example': `DATAFORGE_API_KEY=df_your_key_here
172
+ DATAFORGE_WORKSPACE_ID=your-workspace-uuid
173
+ `,
174
+ },
175
+ };
176
+ //# sourceMappingURL=customer-onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-onboarding.js","sourceRoot":"","sources":["../../src/templates/customer-onboarding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Template registry — single source of truth for `dataforge init` templates.
3
+ */
4
+ export interface TemplateSpec {
5
+ description: string;
6
+ files: Record<string, string>;
7
+ hasPolicy?: boolean;
8
+ hasSeed?: boolean;
9
+ }
10
+ export declare const TEMPLATES: Record<string, TemplateSpec>;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAMlD,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Template registry — single source of truth for `dataforge init` templates.
3
+ */
4
+ import { basicTemplate } from './basic.js';
5
+ import { reactDashboardTemplate } from './react-dashboard.js';
6
+ import { contractReviewTemplate } from './contract-review.js';
7
+ import { customerOnboardingTemplate } from './customer-onboarding.js';
8
+ import { vendorRiskTemplate } from './vendor-risk.js';
9
+ export const TEMPLATES = {
10
+ basic: basicTemplate,
11
+ 'react-dashboard': reactDashboardTemplate,
12
+ 'contract-review': contractReviewTemplate,
13
+ 'customer-onboarding': customerOnboardingTemplate,
14
+ 'vendor-risk': vendorRiskTemplate,
15
+ };
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAStD,MAAM,CAAC,MAAM,SAAS,GAAiC;IACrD,KAAK,EAAE,aAAa;IACpB,iBAAiB,EAAE,sBAAsB;IACzC,iBAAiB,EAAE,sBAAsB;IACzC,qBAAqB,EAAE,0BAA0B;IACjD,aAAa,EAAE,kBAAkB;CAClC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * React + Vite dashboard template — DataForge SDK with Preview subscriptions.
3
+ */
4
+ import type { TemplateSpec } from './index.js';
5
+ export declare const reactDashboardTemplate: TemplateSpec;
6
+ //# sourceMappingURL=react-dashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-dashboard.d.ts","sourceRoot":"","sources":["../../src/templates/react-dashboard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,sBAAsB,EAAE,YA6IpC,CAAC"}