@kici-dev/compiler 0.1.27 → 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 (153) hide show
  1. package/dist/auth/headless-detect.d.ts +14 -5
  2. package/dist/auth/headless-detect.js +50 -9
  3. package/dist/cli.js +120 -11
  4. package/dist/commands/compile.js +28 -4
  5. package/dist/commands/diagnostics.js +14 -2
  6. package/dist/commands/doctor.d.ts +64 -0
  7. package/dist/commands/doctor.js +413 -0
  8. package/dist/commands/endpoints.js +6 -0
  9. package/dist/commands/fixture.js +13 -0
  10. package/dist/commands/hook.js +3 -2
  11. package/dist/commands/index.d.ts +8 -0
  12. package/dist/commands/index.js +5 -1
  13. package/dist/commands/init-host-os.d.ts +34 -0
  14. package/dist/commands/init-host-os.js +44 -0
  15. package/dist/commands/init.d.ts +4 -0
  16. package/dist/commands/init.js +159 -36
  17. package/dist/commands/local.d.ts +28 -2
  18. package/dist/commands/local.js +74 -5
  19. package/dist/commands/login.js +1 -1
  20. package/dist/commands/notifications.d.ts +61 -0
  21. package/dist/commands/notifications.js +274 -0
  22. package/dist/commands/preview.js +8 -1
  23. package/dist/commands/run-routed.js +10 -1
  24. package/dist/commands/run.js +41 -12
  25. package/dist/commands/runs/artifacts/download.d.ts +24 -0
  26. package/dist/commands/runs/artifacts/download.js +154 -0
  27. package/dist/commands/runs/artifacts/list.d.ts +5 -0
  28. package/dist/commands/runs/artifacts/list.js +47 -0
  29. package/dist/commands/runs/cancel.js +2 -2
  30. package/dist/commands/runs/list.js +8 -2
  31. package/dist/commands/verify-attestation.d.ts +3 -1
  32. package/dist/commands/verify-attestation.js +18 -7
  33. package/dist/errors/formatter.d.ts +14 -1
  34. package/dist/errors/formatter.js +13 -3
  35. package/dist/errors/index.d.ts +2 -1
  36. package/dist/errors/index.js +3 -2
  37. package/dist/errors/source-location.d.ts +20 -0
  38. package/dist/errors/source-location.js +45 -0
  39. package/dist/execution/executor.js +25 -5
  40. package/dist/fixtures/defaults/index.js +2 -1
  41. package/dist/llm-context/llms-architecture.txt +51 -22
  42. package/dist/llm-context/llms-cli.txt +2461 -1582
  43. package/dist/llm-context/llms-features.txt +178 -106
  44. package/dist/llm-context/llms-full.txt +6127 -4426
  45. package/dist/llm-context/llms-getting-started.txt +306 -42
  46. package/dist/llm-context/llms-patterns.txt +13 -7
  47. package/dist/llm-context/llms-sdk-runtime.txt +2013 -0
  48. package/dist/llm-context/llms-sdk.txt +591 -2152
  49. package/dist/llm-context/llms.txt +30 -16
  50. package/dist/local-plane/orchestrator-process.d.ts +12 -7
  51. package/dist/local-plane/orchestrator-process.js +28 -14
  52. package/dist/local-plane/os-mismatch-hint.d.ts +16 -0
  53. package/dist/local-plane/os-mismatch-hint.js +34 -0
  54. package/dist/local-plane/plane-liveness.d.ts +68 -0
  55. package/dist/local-plane/plane-liveness.js +145 -0
  56. package/dist/local-plane/plane-manager.d.ts +60 -18
  57. package/dist/local-plane/plane-manager.js +210 -70
  58. package/dist/local-plane/plane-trigger.d.ts +13 -4
  59. package/dist/local-plane/plane-trigger.js +27 -14
  60. package/dist/local-plane/platform-attach.js +1 -5
  61. package/dist/local-plane/port-holder.d.ts +78 -0
  62. package/dist/local-plane/port-holder.js +227 -0
  63. package/dist/local-plane/postgres.d.ts +15 -3
  64. package/dist/local-plane/postgres.js +34 -12
  65. package/dist/local-plane/run-follow.d.ts +20 -0
  66. package/dist/local-plane/run-follow.js +51 -4
  67. package/dist/local-plane/scaler-config.d.ts +28 -14
  68. package/dist/local-plane/scaler-config.js +59 -41
  69. package/dist/local-plane/source-provider.js +4 -10
  70. package/dist/lockfile/generator.d.ts +14 -1
  71. package/dist/lockfile/generator.js +99 -33
  72. package/dist/lockfile/index.d.ts +3 -1
  73. package/dist/lockfile/index.js +3 -2
  74. package/dist/lockfile/purity-diagnostics.d.ts +31 -0
  75. package/dist/lockfile/purity-diagnostics.js +52 -0
  76. package/dist/postinstall.js +2 -1
  77. package/dist/remote/artifact-extract.d.ts +8 -0
  78. package/dist/remote/artifact-extract.js +58 -0
  79. package/dist/remote/config.d.ts +21 -3
  80. package/dist/remote/config.js +24 -5
  81. package/dist/remote/dashboard-client.d.ts +39 -2
  82. package/dist/remote/dashboard-client.js +47 -4
  83. package/dist/remote/fs-case.d.ts +21 -0
  84. package/dist/remote/fs-case.js +45 -0
  85. package/dist/remote/history.d.ts +9 -3
  86. package/dist/remote/history.js +79 -10
  87. package/dist/remote/local-repo-identity.d.ts +1 -1
  88. package/dist/remote/local-repo-identity.js +2 -1
  89. package/dist/remote/notifications-client.d.ts +149 -0
  90. package/dist/remote/notifications-client.js +103 -0
  91. package/dist/remote/oauth.d.ts +13 -0
  92. package/dist/remote/oauth.js +31 -5
  93. package/dist/remote/output/summary.js +76 -14
  94. package/dist/remote/render.js +30 -9
  95. package/dist/remote/uploader.js +5 -4
  96. package/dist/templates/agents-md.d.ts +1 -1
  97. package/dist/templates/agents-md.js +6 -6
  98. package/dist/templates/index.d.ts +1 -1
  99. package/dist/templates/index.js +2 -2
  100. package/dist/templates/package-json.d.ts +15 -0
  101. package/dist/templates/package-json.js +26 -5
  102. package/dist/test-runner/dry-run.d.ts +2 -1
  103. package/dist/test-runner/dry-run.js +18 -1
  104. package/dist/test-runner/event-types.d.ts +2 -0
  105. package/dist/test-runner/event-types.js +3 -0
  106. package/dist/test-runner/job-executor.d.ts +1 -0
  107. package/dist/test-runner/job-executor.js +81 -43
  108. package/dist/test-runner/output-formatter.d.ts +5 -2
  109. package/dist/test-runner/output-formatter.js +6 -4
  110. package/dist/test-runner/payload-builder.d.ts +7 -1
  111. package/dist/test-runner/payload-builder.js +11 -2
  112. package/dist/test-runner/rule-evaluator.d.ts +7 -3
  113. package/dist/test-runner/rule-evaluator.js +13 -12
  114. package/dist/test-runner/step-context.d.ts +23 -5
  115. package/dist/test-runner/step-context.js +28 -118
  116. package/dist/types.d.ts +21 -2
  117. package/dist/types.js +4 -2
  118. package/dist/validation/index.d.ts +2 -0
  119. package/dist/validation/index.js +2 -1
  120. package/dist/validation/typecheck.d.ts +28 -0
  121. package/dist/validation/typecheck.js +110 -0
  122. package/dist/validation/validator.d.ts +9 -4
  123. package/dist/validation/validator.js +38 -44
  124. package/package.json +12 -15
  125. package/sbom.spdx.json +1322 -1964
  126. package/dist/assets/api-TJJVHrjC.json +0 -118
  127. package/dist/assets/descriptor-BTtjzN9L.json +0 -1382
  128. package/dist/assets/package-BpQF9kR8.json +0 -74
  129. package/dist/assets/package-Ceo2h27X.json +0 -89
  130. package/dist/assets/source_context-D0atuL28.json +0 -20
  131. package/dist/assets/type-BFqO8SCZ.json +0 -202
  132. package/dist/commands/cancel.d.ts +0 -22
  133. package/dist/commands/detect-package-manager.d.ts +0 -42
  134. package/dist/commands/held-run-resolve.d.ts +0 -50
  135. package/dist/commands/status.d.ts +0 -34
  136. package/dist/commands/test.d.ts +0 -88
  137. package/dist/errors/codes.d.ts +0 -25
  138. package/dist/local-executor/dag-scheduler.d.ts +0 -44
  139. package/dist/local-executor/index.d.ts +0 -23
  140. package/dist/local-executor/job-runner.d.ts +0 -47
  141. package/dist/local-executor/materializer.d.ts +0 -44
  142. package/dist/local-executor/output-streamer.d.ts +0 -31
  143. package/dist/local-executor/payload-generator.d.ts +0 -16
  144. package/dist/local-executor/picker.d.ts +0 -33
  145. package/dist/local-executor/runs-on-display.d.ts +0 -9
  146. package/dist/local-executor/secret-loader.d.ts +0 -18
  147. package/dist/local-executor/to-event-payload.d.ts +0 -16
  148. package/dist/local-executor/types.d.ts +0 -93
  149. package/dist/local-executor/workflow-lock.d.ts +0 -82
  150. package/dist/package-F7UXSDHW.json +0 -74
  151. package/dist/remote/client.d.ts +0 -210
  152. package/dist/remote/observer.d.ts +0 -81
  153. package/dist/test-runner/summary.d.ts +0 -7
@@ -0,0 +1,110 @@
1
+ import "../rolldown-runtime-ClRpJifh.js";
2
+ import { compilerError } from "../errors/formatter.js";
3
+ import "../errors/index.js";
4
+ import path from "node:path";
5
+ import { existsSync } from "node:fs";
6
+ import { $ } from "zx";
7
+ import { initZx } from "@kici-dev/core";
8
+ //#region src/validation/typecheck.ts
9
+ initZx();
10
+ /** `path(line,col): error TSxxxx: message` — a located tsc diagnostic. */
11
+ const TSC_LOCATED_RE = /^(.+?)\((\d+),(\d+)\): error (TS\d+): (.+)$/;
12
+ /** `error TSxxxx: message` — a global tsc diagnostic (config errors, etc.). */
13
+ const TSC_GLOBAL_RE = /^error (TS\d+): (.+)$/;
14
+ /**
15
+ * Turn `tsc --noEmit --pretty false` output into located `E120` compiler errors.
16
+ * Handles both located diagnostics (`file(line,col): error TS…`) and global
17
+ * ones (`error TS…`, e.g. a bad tsconfig). Non-diagnostic noise lines are
18
+ * ignored. Paths are left as tsc emits them (kiciDir-relative), readable in the
19
+ * GNU error format.
20
+ */
21
+ function parseTscOutput(stdout) {
22
+ const errors = [];
23
+ for (const raw of stdout.split("\n")) {
24
+ const line = raw.trim();
25
+ const located = TSC_LOCATED_RE.exec(line);
26
+ if (located) {
27
+ const [, file, lineStr, colStr, tsCode, message] = located;
28
+ const location = {
29
+ file,
30
+ line: parseInt(lineStr, 10),
31
+ column: parseInt(colStr, 10)
32
+ };
33
+ errors.push(compilerError("E120", `${tsCode}: ${message}`, {
34
+ location,
35
+ suggestion: "Fix the type error in your workflow source."
36
+ }));
37
+ continue;
38
+ }
39
+ const global = TSC_GLOBAL_RE.exec(line);
40
+ if (global) {
41
+ const [, tsCode, message] = global;
42
+ errors.push(compilerError("E120", `${tsCode}: ${message}`, { suggestion: "Fix the type error in your workflow source." }));
43
+ }
44
+ }
45
+ return errors;
46
+ }
47
+ /** The E121 "compiler could not be resolved" error. */
48
+ function typecheckUnavailable() {
49
+ return compilerError("E121", "Type-check unavailable: could not resolve the TypeScript compiler", { suggestion: "Add \"typescript\" to your .kici/package.json devDependencies (kici init scaffolds it), then reinstall." });
50
+ }
51
+ /**
52
+ * Run an opt-in `tsc --noEmit` type-check over the workflow sources in
53
+ * `kiciDir`. Skips (returns `ran: false`) when there is no `tsconfig.json`.
54
+ * Prefers the workspace-local `tsc` binary, falling back to `npx typescript`;
55
+ * returns a single `E121` when the compiler cannot be resolved.
56
+ */
57
+ async function runTypecheck(kiciDir) {
58
+ const tsconfigPath = path.join(kiciDir, "tsconfig.json");
59
+ if (!existsSync(tsconfigPath)) return {
60
+ ran: false,
61
+ errors: []
62
+ };
63
+ const localBin = path.join(kiciDir, "node_modules", ".bin", "tsc");
64
+ const usedLocal = existsSync(localBin);
65
+ const invocation = usedLocal ? [localBin] : [
66
+ "npx",
67
+ "--yes",
68
+ "-p",
69
+ "typescript",
70
+ "tsc"
71
+ ];
72
+ const tscArgs = [
73
+ "--noEmit",
74
+ "--pretty",
75
+ "false",
76
+ "-p",
77
+ tsconfigPath
78
+ ];
79
+ let out;
80
+ try {
81
+ out = await $({
82
+ cwd: kiciDir,
83
+ nothrow: true
84
+ })`${invocation} ${tscArgs}`;
85
+ } catch {
86
+ return {
87
+ ran: true,
88
+ errors: [typecheckUnavailable()]
89
+ };
90
+ }
91
+ const errors = parseTscOutput(out.stdout);
92
+ if (out.exitCode !== 0 && errors.length === 0) {
93
+ if (!usedLocal) return {
94
+ ran: true,
95
+ errors: [typecheckUnavailable()]
96
+ };
97
+ return {
98
+ ran: true,
99
+ errors: [compilerError("E120", `type-check failed: ${(out.stderr || out.stdout).trim()}`, { suggestion: "Fix the type error in your workflow source." })]
100
+ };
101
+ }
102
+ return {
103
+ ran: true,
104
+ errors
105
+ };
106
+ }
107
+ //#endregion
108
+ export { parseTscOutput, runTypecheck };
109
+
110
+ //# sourceMappingURL=typecheck.js.map
@@ -1,5 +1,5 @@
1
- import type { Workflow } from '@kici-dev/sdk';
2
1
  import { type CompilerError } from '../errors/index.js';
2
+ import type { WorkflowWithSource } from '../types.js';
3
3
  /**
4
4
  * Validation result - either success or list of errors.
5
5
  */
@@ -18,9 +18,14 @@ export type ValidationResult = {
18
18
  * 3. Job dependencies are valid (exist, no cycles, no self-refs)
19
19
  * 4. Static matrix expansions stay under 256 job limit
20
20
  *
21
- * @param workflows - Array of workflows from config
22
- * @param configPath - Path for error location reporting
21
+ * Each error carries the most precise `file:line:column` the data allows: a
22
+ * job-scoped error anchors to the offending job's first step location (real
23
+ * file + real line), falling back to the workflow's source file at line 1 when
24
+ * no step exists; a workflow-scoped error uses the workflow source file (line 1,
25
+ * since `workflow()` captures no call-site).
26
+ *
27
+ * @param workflows - Source-carrying workflows from discovery
23
28
  * @returns Validation result with errors if any
24
29
  */
25
- export declare function validateConfig(workflows: Workflow[], configPath: string): ValidationResult;
30
+ export declare function validateConfig(workflows: WorkflowWithSource[]): ValidationResult;
26
31
  //# sourceMappingURL=validator.d.ts.map
@@ -1,5 +1,6 @@
1
1
  import "../rolldown-runtime-ClRpJifh.js";
2
2
  import { compilerError } from "../errors/formatter.js";
3
+ import { locationForJob, locationForWorkflow } from "../errors/source-location.js";
3
4
  import "../errors/index.js";
4
5
  import { getDynamicJobGroup, isDynamicGroupRef, isDynamicJobFn, isStaticArray, isStaticObject, validateDag } from "@kici-dev/sdk";
5
6
  //#region src/validation/validator.ts
@@ -14,28 +15,26 @@ const MAX_STATIC_MATRIX_JOBS = 256;
14
15
  * 3. Job dependencies are valid (exist, no cycles, no self-refs)
15
16
  * 4. Static matrix expansions stay under 256 job limit
16
17
  *
17
- * @param workflows - Array of workflows from config
18
- * @param configPath - Path for error location reporting
18
+ * Each error carries the most precise `file:line:column` the data allows: a
19
+ * job-scoped error anchors to the offending job's first step location (real
20
+ * file + real line), falling back to the workflow's source file at line 1 when
21
+ * no step exists; a workflow-scoped error uses the workflow source file (line 1,
22
+ * since `workflow()` captures no call-site).
23
+ *
24
+ * @param workflows - Source-carrying workflows from discovery
19
25
  * @returns Validation result with errors if any
20
26
  */
21
- function validateConfig(workflows, configPath) {
27
+ function validateConfig(workflows) {
22
28
  const errors = [];
23
29
  const workflowNames = /* @__PURE__ */ new Set();
24
- for (const workflow of workflows) {
30
+ for (const { workflow, source } of workflows) {
25
31
  if (workflowNames.has(workflow.name)) errors.push(compilerError("E107", `Duplicate workflow name: "${workflow.name}"`, {
26
- location: {
27
- file: configPath,
28
- line: 1,
29
- column: 1
30
- },
32
+ location: locationForWorkflow(source.file),
31
33
  suggestion: "Each workflow must have a unique name"
32
34
  }));
33
35
  workflowNames.add(workflow.name);
34
36
  }
35
- for (const workflow of workflows) {
36
- const workflowErrors = validateWorkflow(workflow, configPath);
37
- errors.push(...workflowErrors);
38
- }
37
+ for (const { workflow, source } of workflows) errors.push(...validateWorkflow(workflow, source.file));
39
38
  if (errors.length > 0) return {
40
39
  valid: false,
41
40
  errors
@@ -45,18 +44,22 @@ function validateConfig(workflows, configPath) {
45
44
  /**
46
45
  * Validate a single workflow.
47
46
  */
48
- function validateWorkflow(workflow, configPath) {
47
+ function validateWorkflow(workflow, workflowFile) {
49
48
  const errors = [];
50
49
  const staticJobs = [];
51
50
  for (const jobOrFactory of workflow.jobs) if (!isDynamicJobFn(jobOrFactory)) staticJobs.push(jobOrFactory);
51
+ const jobLoc = (name) => {
52
+ const j = staticJobs.find((s) => s.name === name);
53
+ return j ? locationForJob(j, workflowFile) : {
54
+ file: workflowFile,
55
+ line: 1,
56
+ column: 1
57
+ };
58
+ };
52
59
  const jobNames = /* @__PURE__ */ new Set();
53
60
  for (const job of staticJobs) {
54
61
  if (jobNames.has(job.name)) errors.push(compilerError("E106", `Duplicate job name "${job.name}" in workflow "${workflow.name}"`, {
55
- location: {
56
- file: configPath,
57
- line: 1,
58
- column: 1
59
- },
62
+ location: locationForJob(job, workflowFile),
60
63
  suggestion: "Each job in a workflow must have a unique name"
61
64
  }));
62
65
  jobNames.add(job.name);
@@ -66,19 +69,26 @@ function validateWorkflow(workflow, configPath) {
66
69
  const groupName = getDynamicJobGroup(jobOrFactory);
67
70
  if (groupName) dynamicGroupNames.add(groupName);
68
71
  }
69
- const dagErrors = validateJobDag(staticJobs, workflow.name, configPath, dynamicGroupNames);
72
+ const dagErrors = validateJobDag(staticJobs, workflow.name, jobLoc, dynamicGroupNames);
70
73
  errors.push(...dagErrors);
71
74
  for (const job of staticJobs) {
72
- const matrixErrors = validateStaticMatrix(job, workflow.name, configPath);
75
+ const matrixErrors = validateStaticMatrix(job, workflow.name, workflowFile);
73
76
  errors.push(...matrixErrors);
74
77
  }
75
78
  return errors;
76
79
  }
77
80
  /**
81
+ * Best location for a DAG node id: strip the synthetic `__group:` prefix (which
82
+ * has no backing Job) and resolve via the job-location lookup.
83
+ */
84
+ function dagNodeLocation(nodeId, jobLoc) {
85
+ return jobLoc(nodeId.startsWith("__group:") ? nodeId.slice(8) : nodeId);
86
+ }
87
+ /**
78
88
  * Validate job dependency DAG.
79
89
  * Includes synthetic __group: nodes for tagged dynamic job functions ( Layer 1).
80
90
  */
81
- function validateJobDag(jobs, workflowName, configPath, dynamicGroupNames) {
91
+ function validateJobDag(jobs, workflowName, jobLoc, dynamicGroupNames) {
82
92
  const errors = [];
83
93
  const dagNodes = jobs.map((job) => ({
84
94
  id: job.name,
@@ -91,32 +101,20 @@ function validateJobDag(jobs, workflowName, configPath, dynamicGroupNames) {
91
101
  const result = validateDag(dagNodes);
92
102
  if (!result.valid) switch (result.error) {
93
103
  case "cycle":
94
- errors.push(compilerError("E102", `Circular dependency in workflow "${workflowName}": ${result.nodesInCycle.join(" -> ")}`, {
95
- location: {
96
- file: configPath,
97
- line: 1,
98
- column: 1
99
- },
104
+ errors.push(compilerError("E102", `Circular dependency in workflow "${workflowName}": ${result.nodesInCycle.join(", ")}`, {
105
+ location: dagNodeLocation(result.nodesInCycle[0] ?? "", jobLoc),
100
106
  suggestion: "Break the cycle by removing one of the dependencies"
101
107
  }));
102
108
  break;
103
109
  case "self-reference":
104
110
  errors.push(compilerError("E103", `Job "${result.nodeId}" in workflow "${workflowName}" depends on itself`, {
105
- location: {
106
- file: configPath,
107
- line: 1,
108
- column: 1
109
- },
111
+ location: dagNodeLocation(result.nodeId, jobLoc),
110
112
  suggestion: "Remove the self-dependency"
111
113
  }));
112
114
  break;
113
115
  case "missing-dependency":
114
116
  errors.push(compilerError("E101", `Job "${result.nodeId}" in workflow "${workflowName}" depends on non-existent job "${result.missingDep}"`, {
115
- location: {
116
- file: configPath,
117
- line: 1,
118
- column: 1
119
- },
117
+ location: dagNodeLocation(result.nodeId, jobLoc),
120
118
  suggestion: `Create a job named "${result.missingDep}" or fix the dependency name`
121
119
  }));
122
120
  break;
@@ -140,7 +138,7 @@ function resolveNeeds(needs) {
140
138
  /**
141
139
  * Validate static matrix doesn't exceed job limit.
142
140
  */
143
- function validateStaticMatrix(job, workflowName, configPath) {
141
+ function validateStaticMatrix(job, workflowName, workflowFile) {
144
142
  const errors = [];
145
143
  if (!job.matrix) return errors;
146
144
  if (typeof job.matrix === "function") return errors;
@@ -149,11 +147,7 @@ function validateStaticMatrix(job, workflowName, configPath) {
149
147
  else if (isStaticObject(job.matrix)) expansionCount = Object.values(job.matrix).reduce((acc, dimension) => acc * dimension.length, 1);
150
148
  if (job.include) expansionCount += job.include.length;
151
149
  if (expansionCount > MAX_STATIC_MATRIX_JOBS) errors.push(compilerError("E104", `Static matrix for job "${job.name}" in workflow "${workflowName}" would generate ${expansionCount} jobs (max: ${MAX_STATIC_MATRIX_JOBS})`, {
152
- location: {
153
- file: configPath,
154
- line: 1,
155
- column: 1
156
- },
150
+ location: locationForJob(job, workflowFile),
157
151
  suggestion: "Reduce matrix dimensions or use exclude patterns to limit combinations"
158
152
  }));
159
153
  return errors;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kici-dev/compiler",
3
- "version": "0.1.27",
3
+ "version": "0.3.0",
4
4
  "description": "Compiler and CLI for KiCI workflows. Compiles `.kici/workflows/*.ts` to a `kici.lock.json` file consumed by the orchestrator and agents, and runs workflows locally or against a remote orchestrator.",
5
5
  "keywords": [
6
6
  "ci",
@@ -53,29 +53,26 @@
53
53
  "fast-glob": "^3.3.3",
54
54
  "open": "^11.0.0",
55
55
  "picocolors": "^1.1.1",
56
- "picomatch": "^4.0.4",
57
- "proper-lockfile": "^4.1.2",
58
- "tar": "^7.5.16",
56
+ "picomatch": "^4.0.5",
57
+ "tar": "^7.5.20",
59
58
  "typescript": "^6.0.3",
60
- "ws": "^8.21.0",
59
+ "ws": "^8.21.1",
60
+ "wsl-utils": "^0.3.0",
61
61
  "yaml": "^2.9.0",
62
62
  "zod": "^4.4.3",
63
63
  "zx": "^8.8.5",
64
- "@kici-dev/orchestrator": "0.1.27",
65
- "@kici-dev/core": "0.1.27",
66
- "@kici-dev/agent": "0.1.27",
67
- "@kici-dev/engine": "0.1.27"
64
+ "@kici-dev/agent": "0.3.0",
65
+ "@kici-dev/engine": "0.3.0",
66
+ "@kici-dev/orchestrator": "0.3.0",
67
+ "@kici-dev/core": "0.3.0"
68
68
  },
69
69
  "peerDependencies": {
70
- "@kici-dev/sdk": "0.1.27"
71
- },
72
- "devDependencies": {
73
- "@types/proper-lockfile": "^4.1.4"
70
+ "@kici-dev/sdk": "0.3.0"
74
71
  },
75
72
  "scripts": {
76
- "build": "node ../../scripts/build-ts.mjs && tsc --emitDeclarationOnly",
73
+ "build": "node ../../scripts/build-ts.mjs && tsgo --emitDeclarationOnly",
77
74
  "postbuild": "zx hack/postbuild.mjs",
78
- "typecheck": "tsc --noEmit",
75
+ "typecheck": "tsgo --noEmit",
79
76
  "test": "vitest run",
80
77
  "test:watch": "vitest",
81
78
  "postinstall": "node hack/postinstall.mjs"