@loxtep/sdk 0.2.3 → 0.3.0

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 (168) hide show
  1. package/README.md +141 -0
  2. package/dist/authoring/agent.d.ts +164 -0
  3. package/dist/authoring/agent.d.ts.map +1 -0
  4. package/dist/authoring/agent.js +376 -0
  5. package/dist/authoring/agent.js.map +1 -0
  6. package/dist/authoring/compiler.d.ts +98 -0
  7. package/dist/authoring/compiler.d.ts.map +1 -0
  8. package/dist/authoring/compiler.js +156 -0
  9. package/dist/authoring/compiler.js.map +1 -0
  10. package/dist/authoring/define-data-workflow.d.ts +24 -0
  11. package/dist/authoring/define-data-workflow.d.ts.map +1 -0
  12. package/dist/authoring/define-data-workflow.js +93 -0
  13. package/dist/authoring/define-data-workflow.js.map +1 -0
  14. package/dist/authoring/index.d.ts +19 -0
  15. package/dist/authoring/index.d.ts.map +1 -0
  16. package/dist/authoring/index.js +15 -0
  17. package/dist/authoring/index.js.map +1 -0
  18. package/dist/authoring/toolbox.d.ts +133 -0
  19. package/dist/authoring/toolbox.d.ts.map +1 -0
  20. package/dist/authoring/toolbox.js +166 -0
  21. package/dist/authoring/toolbox.js.map +1 -0
  22. package/dist/authoring/triggers.d.ts +41 -0
  23. package/dist/authoring/triggers.d.ts.map +1 -0
  24. package/dist/authoring/triggers.js +60 -0
  25. package/dist/authoring/triggers.js.map +1 -0
  26. package/dist/authoring/types.d.ts +64 -0
  27. package/dist/authoring/types.d.ts.map +1 -0
  28. package/dist/authoring/types.js +9 -0
  29. package/dist/authoring/types.js.map +1 -0
  30. package/dist/cli/commands/activity-cmd.d.ts +28 -0
  31. package/dist/cli/commands/activity-cmd.d.ts.map +1 -0
  32. package/dist/cli/commands/activity-cmd.js +78 -0
  33. package/dist/cli/commands/activity-cmd.js.map +1 -0
  34. package/dist/cli/commands/attach-cmd.d.ts +38 -0
  35. package/dist/cli/commands/attach-cmd.d.ts.map +1 -0
  36. package/dist/cli/commands/attach-cmd.js +141 -0
  37. package/dist/cli/commands/attach-cmd.js.map +1 -0
  38. package/dist/cli/commands/deploy-cmd.d.ts +101 -0
  39. package/dist/cli/commands/deploy-cmd.d.ts.map +1 -0
  40. package/dist/cli/commands/deploy-cmd.js +461 -0
  41. package/dist/cli/commands/deploy-cmd.js.map +1 -0
  42. package/dist/cli/commands/generate-cmd.d.ts +35 -0
  43. package/dist/cli/commands/generate-cmd.d.ts.map +1 -0
  44. package/dist/cli/commands/generate-cmd.js +134 -0
  45. package/dist/cli/commands/generate-cmd.js.map +1 -0
  46. package/dist/cli/commands/improvements-cmd.d.ts +44 -0
  47. package/dist/cli/commands/improvements-cmd.d.ts.map +1 -0
  48. package/dist/cli/commands/improvements-cmd.js +215 -0
  49. package/dist/cli/commands/improvements-cmd.js.map +1 -0
  50. package/dist/cli/commands/init-cmd.d.ts +78 -0
  51. package/dist/cli/commands/init-cmd.d.ts.map +1 -0
  52. package/dist/cli/commands/init-cmd.js +250 -0
  53. package/dist/cli/commands/init-cmd.js.map +1 -0
  54. package/dist/cli/commands/test-cmd.d.ts +89 -0
  55. package/dist/cli/commands/test-cmd.d.ts.map +1 -0
  56. package/dist/cli/commands/test-cmd.js +378 -0
  57. package/dist/cli/commands/test-cmd.js.map +1 -0
  58. package/dist/cli/index.d.ts +1 -1
  59. package/dist/cli/index.js +146 -4
  60. package/dist/cli/index.js.map +1 -1
  61. package/dist/cli/project-context.d.ts +153 -0
  62. package/dist/cli/project-context.d.ts.map +1 -0
  63. package/dist/cli/project-context.js +190 -0
  64. package/dist/cli/project-context.js.map +1 -0
  65. package/dist/client/activity-types.d.ts +66 -0
  66. package/dist/client/activity-types.d.ts.map +1 -0
  67. package/dist/client/activity-types.js +9 -0
  68. package/dist/client/activity-types.js.map +1 -0
  69. package/dist/client/activity.d.ts +22 -0
  70. package/dist/client/activity.d.ts.map +1 -0
  71. package/dist/client/activity.js +43 -0
  72. package/dist/client/activity.js.map +1 -0
  73. package/dist/client/data-products.d.ts.map +1 -1
  74. package/dist/client/data-products.js +4 -98
  75. package/dist/client/data-products.js.map +1 -1
  76. package/dist/client/flow-types.d.ts +4 -2
  77. package/dist/client/flow-types.d.ts.map +1 -1
  78. package/dist/client/flows.d.ts +1 -1
  79. package/dist/client/flows.d.ts.map +1 -1
  80. package/dist/client/flows.js +49 -124
  81. package/dist/client/flows.js.map +1 -1
  82. package/dist/client/improvements-types.d.ts +55 -0
  83. package/dist/client/improvements-types.d.ts.map +1 -0
  84. package/dist/client/improvements-types.js +9 -0
  85. package/dist/client/improvements-types.js.map +1 -0
  86. package/dist/client/improvements.d.ts +29 -0
  87. package/dist/client/improvements.d.ts.map +1 -0
  88. package/dist/client/improvements.js +50 -0
  89. package/dist/client/improvements.js.map +1 -0
  90. package/dist/client/index.d.ts +6 -2
  91. package/dist/client/index.d.ts.map +1 -1
  92. package/dist/client/index.js.map +1 -1
  93. package/dist/client/loxtep-client.d.ts +45 -0
  94. package/dist/client/loxtep-client.d.ts.map +1 -1
  95. package/dist/client/loxtep-client.js +68 -0
  96. package/dist/client/loxtep-client.js.map +1 -1
  97. package/dist/client/projects-types.d.ts +25 -0
  98. package/dist/client/projects-types.d.ts.map +1 -1
  99. package/dist/client/projects.d.ts +2 -1
  100. package/dist/client/projects.d.ts.map +1 -1
  101. package/dist/client/projects.js +17 -0
  102. package/dist/client/projects.js.map +1 -1
  103. package/dist/client/queue-types.d.ts +15 -2
  104. package/dist/client/queue-types.d.ts.map +1 -1
  105. package/dist/client/queues.d.ts.map +1 -1
  106. package/dist/client/queues.js +3 -14
  107. package/dist/client/queues.js.map +1 -1
  108. package/dist/codegen/emit.d.ts +25 -0
  109. package/dist/codegen/emit.d.ts.map +1 -0
  110. package/dist/codegen/emit.js +158 -0
  111. package/dist/codegen/emit.js.map +1 -0
  112. package/dist/codegen/index.d.ts +17 -0
  113. package/dist/codegen/index.d.ts.map +1 -0
  114. package/dist/codegen/index.js +16 -0
  115. package/dist/codegen/index.js.map +1 -0
  116. package/dist/codegen/load-workspace-context.d.ts +30 -0
  117. package/dist/codegen/load-workspace-context.d.ts.map +1 -0
  118. package/dist/codegen/load-workspace-context.js +127 -0
  119. package/dist/codegen/load-workspace-context.js.map +1 -0
  120. package/dist/codegen/normalize.d.ts +35 -0
  121. package/dist/codegen/normalize.d.ts.map +1 -0
  122. package/dist/codegen/normalize.js +77 -0
  123. package/dist/codegen/normalize.js.map +1 -0
  124. package/dist/codegen/types.d.ts +89 -0
  125. package/dist/codegen/types.d.ts.map +1 -0
  126. package/dist/codegen/types.js +9 -0
  127. package/dist/codegen/types.js.map +1 -0
  128. package/dist/codegen/write-artifact.d.ts +40 -0
  129. package/dist/codegen/write-artifact.d.ts.map +1 -0
  130. package/dist/codegen/write-artifact.js +74 -0
  131. package/dist/codegen/write-artifact.js.map +1 -0
  132. package/dist/config/index.d.ts +1 -0
  133. package/dist/config/index.d.ts.map +1 -1
  134. package/dist/config/index.js +1 -0
  135. package/dist/config/index.js.map +1 -1
  136. package/dist/config/workspace-config.d.ts +76 -0
  137. package/dist/config/workspace-config.d.ts.map +1 -0
  138. package/dist/config/workspace-config.js +129 -0
  139. package/dist/config/workspace-config.js.map +1 -0
  140. package/dist/index.d.ts +3 -0
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +3 -0
  143. package/dist/index.js.map +1 -1
  144. package/dist/rstreams/event-bridge.d.ts +16 -2
  145. package/dist/rstreams/event-bridge.d.ts.map +1 -1
  146. package/dist/rstreams/event-bridge.js +38 -5
  147. package/dist/rstreams/event-bridge.js.map +1 -1
  148. package/dist/skills/check-scope.d.ts +42 -0
  149. package/dist/skills/check-scope.d.ts.map +1 -0
  150. package/dist/skills/check-scope.js +84 -0
  151. package/dist/skills/check-scope.js.map +1 -0
  152. package/dist/skills/index.d.ts +14 -0
  153. package/dist/skills/index.d.ts.map +1 -0
  154. package/dist/skills/index.js +12 -0
  155. package/dist/skills/index.js.map +1 -0
  156. package/dist/skills/loader.d.ts +79 -0
  157. package/dist/skills/loader.d.ts.map +1 -0
  158. package/dist/skills/loader.js +102 -0
  159. package/dist/skills/loader.js.map +1 -0
  160. package/dist/skills/types.d.ts +55 -0
  161. package/dist/skills/types.d.ts.map +1 -0
  162. package/dist/skills/types.js +9 -0
  163. package/dist/skills/types.js.map +1 -0
  164. package/dist/skills/validate-references.d.ts +54 -0
  165. package/dist/skills/validate-references.d.ts.map +1 -0
  166. package/dist/skills/validate-references.js +80 -0
  167. package/dist/skills/validate-references.js.map +1 -0
  168. package/package.json +5 -3
package/dist/cli/index.js CHANGED
@@ -2,13 +2,16 @@
2
2
  /**
3
3
  * Loxtep CLI entry point.
4
4
  * Usage: loxtep <command> [options]
5
- * Commands: login, logout, whoami, init, config, bus, data-products, queue, flows, workflows, observe, connections, domains, standards, data-contracts
5
+ * Commands: login, logout, whoami, init, attach, config, bus, data-products, queue, flows, workflows, observe, connections, domains, standards, data-contracts
6
6
  */
7
7
  import { runLogin } from './commands/login.js';
8
8
  import { runLogout } from './commands/logout.js';
9
9
  import { runWhoami } from './commands/whoami.js';
10
- import { runConfigList, runConfigPaths, runConfigSet, runConfigExportFromDataProduct, runConfigExportFromConnector, runInit, } from './commands/config-cmd.js';
10
+ import { runAttach } from './commands/attach-cmd.js';
11
+ import { runConfigList, runConfigPaths, runConfigSet, runConfigExportFromDataProduct, runConfigExportFromConnector, } from './commands/config-cmd.js';
12
+ import { runInitCommand } from './commands/init-cmd.js';
11
13
  import { runBusLogin } from './commands/bus-cmd.js';
14
+ import { createCliClient } from './create-cli-client.js';
12
15
  import { runDataProductsList, runDataProductsGet, runDataProductsQuery, runDataProductsTables, runDataProductsCreate, } from './commands/data-products-cmd.js';
13
16
  import { runMetricsRateLimits, runMetricsLog } from './commands/metrics-cmd.js';
14
17
  import { runQueueInfo, runQueueCheckpoint } from './commands/queue-cmd.js';
@@ -19,6 +22,11 @@ import { runConnectionsList, runConnectionsGet, runConnectionsCreate, runConnect
19
22
  import { runDomainsList, runDomainsGet } from './commands/domains-cmd.js';
20
23
  import { runStandardsList, runStandardsGet } from './commands/standards-cmd.js';
21
24
  import { runDataContractsList, runDataContractsGet } from './commands/data-contracts-cmd.js';
25
+ import { runGenerate } from './commands/generate-cmd.js';
26
+ import { runTest } from './commands/test-cmd.js';
27
+ import { runDeploy } from './commands/deploy-cmd.js';
28
+ import { runImprovementsListCommand, runImprovementsApplyCommand, runImprovementsRejectCommand, } from './commands/improvements-cmd.js';
29
+ import { runActivityListCommand } from './commands/activity-cmd.js';
22
30
  const args = process.argv.slice(2);
23
31
  const command = args[0];
24
32
  const sub = args[1];
@@ -35,6 +43,10 @@ Commands:
35
43
  logout Remove stored credentials
36
44
  whoami Print current user and organization
37
45
  init Print setup checklist (config + auth + docs pointers)
46
+ attach [--instance <id>] Link project to an Instance (writes instance_id + api_url)
47
+ generate Generate typed workspace context artifact (.loxtep/generated/index.ts)
48
+ test <module> --event <file> Execute a workflow module locally with a sample event (prints action trace)
49
+ deploy Compile and deploy workflow modules to the attached Instance
38
50
  config list Show current config (api_url, organization_id, project_id, instance_id)
39
51
  config paths Show resolved URLs for auth and a full matrix of LoxtepClient SDK paths → gateway URLs
40
52
  config set <k> <v> Set config key (api_url | auth_path_prefix | api_path_prefix | organization_id | …)
@@ -64,6 +76,10 @@ Commands:
64
76
  standards get <id> Get standard by id
65
77
  data-contracts list List data contracts
66
78
  data-contracts get <id> Get data contract by id
79
+ improvements list [--status <s>] [--workflow <name>] List improvements
80
+ improvements apply <id> Apply proposed change to workflow module file
81
+ improvements reject <id> Reject an improvement
82
+ activity list [--source <s>] [--actor <a>] [--resource-type <t>] [--from <date>] [--to <date>] List activity/audit entries
67
83
 
68
84
  Examples:
69
85
  loxtep login
@@ -114,9 +130,60 @@ async function main() {
114
130
  case 'whoami':
115
131
  await runWhoami();
116
132
  break;
117
- case 'init':
118
- await runInit();
133
+ case 'init': {
134
+ const templateIdx = args.indexOf('--template');
135
+ const templateSlug = templateIdx >= 0 ? args[templateIdx + 1] : undefined;
136
+ const createRepoIdx = args.indexOf('--create-repo');
137
+ const createRepo = createRepoIdx >= 0 ? (args[createRepoIdx + 1] || true) : undefined;
138
+ const fromRepoIdx = args.indexOf('--from-repo');
139
+ const fromRepo = fromRepoIdx >= 0 ? args[fromRepoIdx + 1] : undefined;
140
+ const nameIdx = args.indexOf('--name');
141
+ const name = nameIdx >= 0 ? args[nameIdx + 1] : undefined;
142
+ // Attempt to get an authenticated client (don't fail if not logged in)
143
+ const clientResult = await createCliClient().catch(() => null);
144
+ const client = clientResult?.client ?? null;
145
+ const result = await runInitCommand({
146
+ cwd: process.cwd(),
147
+ templateSlug,
148
+ createRepo,
149
+ fromRepo,
150
+ name,
151
+ client,
152
+ });
153
+ for (const line of result.stdout)
154
+ console.log(line);
155
+ for (const line of result.stderr)
156
+ console.error(line);
157
+ if (result.exitCode !== 0)
158
+ process.exitCode = result.exitCode;
159
+ break;
160
+ }
161
+ case 'generate':
162
+ await runGenerate();
163
+ break;
164
+ case 'test':
165
+ await runTest();
119
166
  break;
167
+ case 'deploy':
168
+ await runDeploy();
169
+ break;
170
+ case 'attach': {
171
+ const { requireCliClient } = await import('./create-cli-client.js');
172
+ const authResult = await requireCliClient();
173
+ const attachResult = await runAttach(authResult.client, {
174
+ instanceId: getArg('--instance'),
175
+ });
176
+ if (attachResult.stdout.length > 0) {
177
+ attachResult.stdout.forEach(line => console.log(line));
178
+ }
179
+ if (attachResult.stderr.length > 0) {
180
+ attachResult.stderr.forEach(line => console.error(line));
181
+ }
182
+ if (attachResult.exitCode !== 0) {
183
+ process.exitCode = attachResult.exitCode;
184
+ }
185
+ break;
186
+ }
120
187
  case 'bus':
121
188
  if (sub === 'login') {
122
189
  await runBusLogin();
@@ -412,6 +479,81 @@ async function main() {
412
479
  process.exitCode = 1;
413
480
  }
414
481
  break;
482
+ case 'improvements': {
483
+ const { requireCliClient: requireAuth } = await import('./create-cli-client.js');
484
+ const authResult = await requireAuth();
485
+ if (sub === 'list') {
486
+ const statusFilter = getArg('--status');
487
+ const workflowFilter = getArg('--workflow');
488
+ const result = await runImprovementsListCommand(authResult.client, {
489
+ status: statusFilter,
490
+ workflow_name: workflowFilter,
491
+ });
492
+ for (const line of result.stdout)
493
+ console.log(line);
494
+ for (const line of result.stderr)
495
+ console.error(line);
496
+ if (result.exitCode !== 0)
497
+ process.exitCode = result.exitCode;
498
+ }
499
+ else if (sub === 'apply' && args[2]) {
500
+ const result = await runImprovementsApplyCommand(authResult.client, args[2]);
501
+ for (const line of result.stdout)
502
+ console.log(line);
503
+ for (const line of result.stderr)
504
+ console.error(line);
505
+ if (result.exitCode !== 0)
506
+ process.exitCode = result.exitCode;
507
+ }
508
+ else if (sub === 'reject' && args[2]) {
509
+ const result = await runImprovementsRejectCommand(authResult.client, args[2]);
510
+ for (const line of result.stdout)
511
+ console.log(line);
512
+ for (const line of result.stderr)
513
+ console.error(line);
514
+ if (result.exitCode !== 0)
515
+ process.exitCode = result.exitCode;
516
+ }
517
+ else {
518
+ console.error('Usage: loxtep improvements list [--status proposed|applied|rejected] [--workflow <name>]\n' +
519
+ ' loxtep improvements apply <id>\n' +
520
+ ' loxtep improvements reject <id>');
521
+ process.exitCode = 1;
522
+ }
523
+ break;
524
+ }
525
+ case 'activity': {
526
+ const { requireCliClient: requireAuth } = await import('./create-cli-client.js');
527
+ const authResult = await requireAuth();
528
+ if (sub === 'list') {
529
+ const sourceFilter = getArg('--source');
530
+ const actorFilter = getArg('--actor');
531
+ const resourceTypeFilter = getArg('--resource-type');
532
+ const fromFilter = getArg('--from');
533
+ const toFilter = getArg('--to');
534
+ const limitStr = getArg('--limit');
535
+ const limit = limitStr != null ? parseInt(limitStr, 10) : undefined;
536
+ const result = await runActivityListCommand(authResult.client, {
537
+ source: sourceFilter,
538
+ actor: actorFilter,
539
+ resource_type: resourceTypeFilter,
540
+ from: fromFilter,
541
+ to: toFilter,
542
+ limit: limit != null && !Number.isNaN(limit) ? limit : undefined,
543
+ });
544
+ for (const line of result.stdout)
545
+ console.log(line);
546
+ for (const line of result.stderr)
547
+ console.error(line);
548
+ if (result.exitCode !== 0)
549
+ process.exitCode = result.exitCode;
550
+ }
551
+ else {
552
+ console.error('Usage: loxtep activity list [--source cli|sdk|mcp|ui] [--actor <id>] [--resource-type <type>] [--from <date>] [--to <date>] [--limit <n>]');
553
+ process.exitCode = 1;
554
+ }
555
+ break;
556
+ }
415
557
  default:
416
558
  console.error(`Unknown command: ${command}`);
417
559
  printHelp();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Project-local workspace context for the `loxtep` CLI lifecycle commands.
3
+ *
4
+ * Resolves `.loxtep/project.json` from the working directory upward and enforces
5
+ * the command-ordering preconditions shared by `generate` / `test` / `deploy`
6
+ * (and surfaced by `attach` / `init` / `improvements apply`):
7
+ *
8
+ * - {@link requireProject} fails with `NO_PROJECT` (R1.7) → "run loxtep init first".
9
+ * - {@link requireAttachedProject} fails with `NOT_ATTACHED` (R1.10) →
10
+ * "run loxtep attach first" when `instance_id`/`api_url` are not yet resolved.
11
+ *
12
+ * Writes go through the atomic build-validate-write-once {@link writeProjectConfig}
13
+ * helper used by `attach` / `generate` / `improvements apply`, so a failed command
14
+ * leaves the prior `.loxtep/project.json` bytes intact (R1.9, R17.2).
15
+ *
16
+ * All field names are snake_case per backend conventions.
17
+ */
18
+ import { z } from 'zod';
19
+ /** Workspace config directory name: `.loxtep`. */
20
+ export declare const PROJECT_DIR_NAME = ".loxtep";
21
+ /** Workspace project file name: `project.json`. */
22
+ export declare const PROJECT_FILE_NAME = "project.json";
23
+ /**
24
+ * GitHub Project_Repository binding projected into `.loxtep/project.json` by
25
+ * `loxtep attach` when the project record is bound to a repository (R17.2).
26
+ * Absent entirely when the project is unbound (R17.3).
27
+ */
28
+ export interface ProjectRepository {
29
+ /** Bound repository URL (`github_repo_url`). */
30
+ url: string;
31
+ /** Bound repository name (`github_repo_name`). */
32
+ name: string;
33
+ /** Optional subpath within the repository (`github_repo_path`). */
34
+ subpath?: string;
35
+ /** Bound branch (`github_repo_branch`); defaults to `main` when unspecified (R17.1). */
36
+ branch: string;
37
+ }
38
+ /**
39
+ * Contents of `.loxtep/project.json`. `instance_id`/`api_url` are present only
40
+ * after a successful `loxtep attach`; `repository` is present only when the
41
+ * project is bound to a Project_Repository.
42
+ */
43
+ export interface ProjectConfig {
44
+ /** Loxtep project identifier (required). */
45
+ project_id: string;
46
+ /** Owning organization identifier (optional). */
47
+ organization_id?: string;
48
+ /** Resolved Instance identifier; written by `attach`. */
49
+ instance_id?: string;
50
+ /** Resolved API base URL; written by `attach`. */
51
+ api_url?: string;
52
+ /** Template slug the project was scaffolded from, when applicable. */
53
+ template_slug?: string;
54
+ /** GitHub binding projection; present only for repo-bound projects (R17.2). */
55
+ repository?: ProjectRepository;
56
+ }
57
+ /** zod schema for `.loxtep/project.json`. Unknown keys are stripped on parse. */
58
+ export declare const ProjectConfigSchema: z.ZodObject<{
59
+ project_id: z.ZodString;
60
+ organization_id: z.ZodOptional<z.ZodString>;
61
+ instance_id: z.ZodOptional<z.ZodString>;
62
+ api_url: z.ZodOptional<z.ZodString>;
63
+ template_slug: z.ZodOptional<z.ZodString>;
64
+ repository: z.ZodOptional<z.ZodObject<{
65
+ url: z.ZodString;
66
+ name: z.ZodString;
67
+ subpath: z.ZodOptional<z.ZodString>;
68
+ branch: z.ZodDefault<z.ZodString>;
69
+ }, z.core.$strip>>;
70
+ }, z.core.$strip>;
71
+ /**
72
+ * A precondition failure for a lifecycle command. The thin `main()` maps each to
73
+ * a non-zero {@link CliResult.exitCode} and the message to stderr.
74
+ */
75
+ export type PreconditionFailure = {
76
+ code: 'NO_PROJECT';
77
+ message: string;
78
+ } | {
79
+ code: 'NOT_ATTACHED';
80
+ message: string;
81
+ };
82
+ /**
83
+ * The structured result every lifecycle command returns. `main()` maps
84
+ * `exitCode` to `process.exitCode`, making precondition and error-path
85
+ * requirements (R1.7–R1.11, R2.8) unit-testable without spawning processes.
86
+ */
87
+ export interface CliResult {
88
+ /** Process exit code: 0 on success, non-zero on failure. */
89
+ exitCode: number;
90
+ /** Lines written to standard output. */
91
+ stdout: string[];
92
+ /** Lines written to standard error. */
93
+ stderr: string[];
94
+ }
95
+ /** Full path to `<projectDir>/.loxtep/project.json`. */
96
+ export declare function getProjectFilePath(projectDir: string): string;
97
+ /**
98
+ * Walk from `cwd` upward to the filesystem root, returning the first directory
99
+ * that contains a `.loxtep/project.json`, or `null` if none is found.
100
+ */
101
+ export declare function findProjectDir(cwd: string): string | null;
102
+ export interface RequireProjectSuccess {
103
+ ok: true;
104
+ /** Directory that contains the `.loxtep/` folder. */
105
+ projectDir: string;
106
+ /** Full path to `.loxtep/project.json`. */
107
+ projectFilePath: string;
108
+ /** Parsed and validated project config. */
109
+ project: ProjectConfig;
110
+ }
111
+ export interface RequireProjectFailure {
112
+ ok: false;
113
+ failure: PreconditionFailure;
114
+ }
115
+ export type RequireProjectResult = RequireProjectSuccess | RequireProjectFailure;
116
+ /**
117
+ * Resolve and validate `.loxtep/project.json` searching from `cwd` upward.
118
+ *
119
+ * Returns `NO_PROJECT` (R1.7) when no project file exists in `cwd` or any parent,
120
+ * or when the file cannot be parsed/validated as a project config.
121
+ */
122
+ export declare function requireProject(cwd: string): RequireProjectResult;
123
+ export interface RequireAttachedProjectSuccess {
124
+ ok: true;
125
+ projectDir: string;
126
+ projectFilePath: string;
127
+ project: ProjectConfig & {
128
+ instance_id: string;
129
+ api_url: string;
130
+ };
131
+ }
132
+ export type RequireAttachedProjectResult = RequireAttachedProjectSuccess | RequireProjectFailure;
133
+ /**
134
+ * Like {@link requireProject}, but additionally enforces that the project has
135
+ * been attached: returns `NOT_ATTACHED` (R1.10) when `instance_id` or `api_url`
136
+ * is missing. Used by `generate` / `test` / `deploy`.
137
+ */
138
+ export declare function requireAttachedProject(cwd: string): RequireAttachedProjectResult;
139
+ /** Map a {@link PreconditionFailure} to a non-zero {@link CliResult}. */
140
+ export declare function preconditionToCliResult(failure: PreconditionFailure): CliResult;
141
+ /**
142
+ * Atomic build-validate-write-once writer for `.loxtep/project.json`.
143
+ *
144
+ * The caller builds the new config object in memory; this helper validates it
145
+ * (throwing {@link ValidationError} before touching disk when invalid), then
146
+ * writes it exactly once via a temp file + rename so a partial or failed write
147
+ * leaves the prior file bytes unchanged (R1.9, R17.2). Used by
148
+ * `attach` / `generate` / `improvements apply`.
149
+ *
150
+ * @returns the parsed config (with schema defaults applied, e.g. `repository.branch`).
151
+ */
152
+ export declare function writeProjectConfig(filePath: string, config: unknown): Promise<ProjectConfig>;
153
+ //# sourceMappingURL=project-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../../src/cli/project-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Project-local workspace context for the `loxtep` CLI lifecycle commands.
3
+ *
4
+ * Resolves `.loxtep/project.json` from the working directory upward and enforces
5
+ * the command-ordering preconditions shared by `generate` / `test` / `deploy`
6
+ * (and surfaced by `attach` / `init` / `improvements apply`):
7
+ *
8
+ * - {@link requireProject} fails with `NO_PROJECT` (R1.7) → "run loxtep init first".
9
+ * - {@link requireAttachedProject} fails with `NOT_ATTACHED` (R1.10) →
10
+ * "run loxtep attach first" when `instance_id`/`api_url` are not yet resolved.
11
+ *
12
+ * Writes go through the atomic build-validate-write-once {@link writeProjectConfig}
13
+ * helper used by `attach` / `generate` / `improvements apply`, so a failed command
14
+ * leaves the prior `.loxtep/project.json` bytes intact (R1.9, R17.2).
15
+ *
16
+ * All field names are snake_case per backend conventions.
17
+ */
18
+ import { existsSync, readFileSync } from 'node:fs';
19
+ import { mkdir, writeFile, rename, rm } from 'node:fs/promises';
20
+ import { dirname, join, parse as parsePath } from 'node:path';
21
+ import { z } from 'zod';
22
+ import { ValidationError } from '../errors/validation.js';
23
+ /** Workspace config directory name: `.loxtep`. */
24
+ export const PROJECT_DIR_NAME = '.loxtep';
25
+ /** Workspace project file name: `project.json`. */
26
+ export const PROJECT_FILE_NAME = 'project.json';
27
+ const ProjectRepositorySchema = z.object({
28
+ url: z.string().min(1, 'repository.url is required'),
29
+ name: z.string().min(1, 'repository.name is required'),
30
+ subpath: z.string().optional(),
31
+ // Branch defaults to `main` when unspecified (R17.1).
32
+ branch: z.string().min(1).default('main'),
33
+ });
34
+ /** zod schema for `.loxtep/project.json`. Unknown keys are stripped on parse. */
35
+ export const ProjectConfigSchema = z.object({
36
+ project_id: z.string().min(1, 'project_id is required'),
37
+ organization_id: z.string().min(1).optional(),
38
+ instance_id: z.string().min(1).optional(),
39
+ api_url: z.string().min(1).optional(),
40
+ template_slug: z.string().min(1).optional(),
41
+ repository: ProjectRepositorySchema.optional(),
42
+ });
43
+ /** Guidance message for a missing project (R1.7). */
44
+ const NO_PROJECT_MESSAGE = 'No .loxtep/project.json found in this directory or any parent. Run `loxtep init` first.';
45
+ /** Guidance message for an unattached project (R1.10). */
46
+ const NOT_ATTACHED_MESSAGE = 'Project is not attached to an Instance (missing instance_id/api_url). Run `loxtep attach` first.';
47
+ function noProjectFailure(message = NO_PROJECT_MESSAGE) {
48
+ return { code: 'NO_PROJECT', message };
49
+ }
50
+ function notAttachedFailure(message = NOT_ATTACHED_MESSAGE) {
51
+ return { code: 'NOT_ATTACHED', message };
52
+ }
53
+ /** Full path to `<projectDir>/.loxtep/project.json`. */
54
+ export function getProjectFilePath(projectDir) {
55
+ return join(projectDir, PROJECT_DIR_NAME, PROJECT_FILE_NAME);
56
+ }
57
+ /**
58
+ * Walk from `cwd` upward to the filesystem root, returning the first directory
59
+ * that contains a `.loxtep/project.json`, or `null` if none is found.
60
+ */
61
+ export function findProjectDir(cwd) {
62
+ let dir = cwd;
63
+ // Guard against an infinite loop: stop once `dirname` no longer changes (root).
64
+ for (;;) {
65
+ if (existsSync(getProjectFilePath(dir)))
66
+ return dir;
67
+ const parent = dirname(dir);
68
+ if (parent === dir || parsePath(dir).root === dir) {
69
+ // One last check at the root itself.
70
+ if (existsSync(getProjectFilePath(parent)))
71
+ return parent;
72
+ return null;
73
+ }
74
+ dir = parent;
75
+ }
76
+ }
77
+ /**
78
+ * Resolve and validate `.loxtep/project.json` searching from `cwd` upward.
79
+ *
80
+ * Returns `NO_PROJECT` (R1.7) when no project file exists in `cwd` or any parent,
81
+ * or when the file cannot be parsed/validated as a project config.
82
+ */
83
+ export function requireProject(cwd) {
84
+ const projectDir = findProjectDir(cwd);
85
+ if (!projectDir) {
86
+ return { ok: false, failure: noProjectFailure() };
87
+ }
88
+ const projectFilePath = getProjectFilePath(projectDir);
89
+ let raw;
90
+ try {
91
+ raw = readFileSync(projectFilePath, 'utf-8');
92
+ }
93
+ catch {
94
+ return {
95
+ ok: false,
96
+ failure: noProjectFailure(`Found ${projectFilePath} but it could not be read. Run \`loxtep init\` first.`),
97
+ };
98
+ }
99
+ let parsedJson;
100
+ try {
101
+ parsedJson = JSON.parse(raw);
102
+ }
103
+ catch {
104
+ return {
105
+ ok: false,
106
+ failure: noProjectFailure(`${projectFilePath} is not valid JSON. Run \`loxtep init\` to recreate it.`),
107
+ };
108
+ }
109
+ const result = ProjectConfigSchema.safeParse(parsedJson);
110
+ if (!result.success) {
111
+ return {
112
+ ok: false,
113
+ failure: noProjectFailure(`${projectFilePath} is not a valid project config: ${summarizeIssues(result.error)}. Run \`loxtep init\` to recreate it.`),
114
+ };
115
+ }
116
+ return { ok: true, projectDir, projectFilePath, project: result.data };
117
+ }
118
+ /**
119
+ * Like {@link requireProject}, but additionally enforces that the project has
120
+ * been attached: returns `NOT_ATTACHED` (R1.10) when `instance_id` or `api_url`
121
+ * is missing. Used by `generate` / `test` / `deploy`.
122
+ */
123
+ export function requireAttachedProject(cwd) {
124
+ const base = requireProject(cwd);
125
+ if (!base.ok)
126
+ return base;
127
+ const { project, projectDir, projectFilePath } = base;
128
+ if (typeof project.instance_id !== 'string' ||
129
+ project.instance_id.length === 0 ||
130
+ typeof project.api_url !== 'string' ||
131
+ project.api_url.length === 0) {
132
+ return { ok: false, failure: notAttachedFailure() };
133
+ }
134
+ return {
135
+ ok: true,
136
+ projectDir,
137
+ projectFilePath,
138
+ project: { ...project, instance_id: project.instance_id, api_url: project.api_url },
139
+ };
140
+ }
141
+ /** Map a {@link PreconditionFailure} to a non-zero {@link CliResult}. */
142
+ export function preconditionToCliResult(failure) {
143
+ return { exitCode: 1, stdout: [], stderr: [failure.message] };
144
+ }
145
+ /**
146
+ * Atomic build-validate-write-once writer for `.loxtep/project.json`.
147
+ *
148
+ * The caller builds the new config object in memory; this helper validates it
149
+ * (throwing {@link ValidationError} before touching disk when invalid), then
150
+ * writes it exactly once via a temp file + rename so a partial or failed write
151
+ * leaves the prior file bytes unchanged (R1.9, R17.2). Used by
152
+ * `attach` / `generate` / `improvements apply`.
153
+ *
154
+ * @returns the parsed config (with schema defaults applied, e.g. `repository.branch`).
155
+ */
156
+ export async function writeProjectConfig(filePath, config) {
157
+ // 1. Validate the fully-built object before writing anything.
158
+ const result = ProjectConfigSchema.safeParse(config);
159
+ if (!result.success) {
160
+ throw new ValidationError('Invalid .loxtep/project.json contents', issuesToFieldErrors(result.error));
161
+ }
162
+ const validated = result.data;
163
+ const serialized = JSON.stringify(validated, null, 2);
164
+ // 2. Write once, atomically: temp file in the target directory, then rename.
165
+ const dir = dirname(filePath);
166
+ await mkdir(dir, { recursive: true });
167
+ const tmpPath = join(dir, `.${PROJECT_FILE_NAME}.tmp-${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2)}`);
168
+ try {
169
+ await writeFile(tmpPath, serialized, 'utf-8');
170
+ await rename(tmpPath, filePath);
171
+ }
172
+ catch (err) {
173
+ // Best-effort cleanup so a failed write never leaves a stray temp file.
174
+ await rm(tmpPath, { force: true }).catch(() => undefined);
175
+ throw err;
176
+ }
177
+ return validated;
178
+ }
179
+ function issuesToFieldErrors(error) {
180
+ return error.issues.map(issue => ({
181
+ field: issue.path.length > 0 ? issue.path.join('.') : '(root)',
182
+ message: issue.message,
183
+ }));
184
+ }
185
+ function summarizeIssues(error) {
186
+ return issuesToFieldErrors(error)
187
+ .map(fe => `${fe.field}: ${fe.message}`)
188
+ .join('; ');
189
+ }
190
+ //# sourceMappingURL=project-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-context.js","sourceRoot":"","sources":["../../src/cli/project-context.ts"],"names":[],"mappings":"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"}