hammerkit 1.26.0 → 1.27.0-next.10

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 (128) hide show
  1. package/build.schema.json +62 -1
  2. package/dist/cache/backends/local-cache-backend.js +10 -2
  3. package/dist/cache/backends/registry-cache-backend.js +2 -2
  4. package/dist/cache/explain.js +13 -11
  5. package/dist/cli.js +3 -0
  6. package/dist/docker/item-network.js +471 -0
  7. package/dist/docker/pull.js +4 -2
  8. package/dist/docker/remove-orphaned-containers.js +13 -6
  9. package/dist/environment/replace-env-variables.js +8 -6
  10. package/dist/executer/await-completed-dependencies.js +2 -1
  11. package/dist/executer/check-readiness.js +2 -2
  12. package/dist/executer/docker-service.js +24 -13
  13. package/dist/executer/docker-task.js +18 -29
  14. package/dist/executer/event-cache.js +24 -2
  15. package/dist/executer/execute-command.js +18 -5
  16. package/dist/executer/execute-docker.js +4 -1
  17. package/dist/executer/execution-steps.js +33 -7
  18. package/dist/executer/get-docker-executor.js +14 -7
  19. package/dist/executer/scheduler/enqueue-next.js +17 -3
  20. package/dist/executer/watch-loop.js +2 -2
  21. package/dist/executer/watch-state-key.js +1 -1
  22. package/dist/file/within-root.js +42 -0
  23. package/dist/harness/connect.js +99 -0
  24. package/dist/harness/format.js +73 -0
  25. package/dist/harness/mcp-command.js +59 -0
  26. package/dist/harness/mcp.js +432 -0
  27. package/dist/harness/opencode.js +492 -0
  28. package/dist/harness/pi.js +217 -0
  29. package/dist/harness/sandbox-client.js +411 -0
  30. package/dist/index.js +33 -36
  31. package/dist/kubernetes/apply.js +42 -1
  32. package/dist/kubernetes/await-running-state.js +33 -1
  33. package/dist/kubernetes/claim-layout.js +71 -0
  34. package/dist/kubernetes/ensure-http-route.js +1 -1
  35. package/dist/kubernetes/ensure-kubernetes-deployment-exists.js +46 -28
  36. package/dist/kubernetes/ensure-kubernetes-persistent-volume-claim-exists.js +132 -5
  37. package/dist/kubernetes/ensure-kubernetes-service-exists.js +27 -11
  38. package/dist/kubernetes/ensure-persistent-data.js +75 -24
  39. package/dist/kubernetes/get-service-ip.js +16 -2
  40. package/dist/kubernetes/job-placement.js +99 -0
  41. package/dist/kubernetes/job-secrets.js +320 -0
  42. package/dist/kubernetes/kept-claims.js +203 -0
  43. package/dist/kubernetes/kubernetes-instance.js +10 -2
  44. package/dist/kubernetes/network-gate.js +71 -0
  45. package/dist/kubernetes/network-policy.js +583 -0
  46. package/dist/kubernetes/remove-persistent-data.js +3 -1
  47. package/dist/kubernetes/resources.js +37 -4
  48. package/dist/kubernetes/restore-kubernetes-data.js +28 -7
  49. package/dist/kubernetes/secrets.js +7 -9
  50. package/dist/kubernetes/store-kubernetes-data.js +1 -1
  51. package/dist/kubernetes/volumes.js +104 -12
  52. package/dist/log.js +1 -1
  53. package/dist/main.js +41 -0
  54. package/dist/network/egress-proxy.js +407 -0
  55. package/dist/network/port-relay.js +35 -0
  56. package/dist/optimizer/get-work-cache-stats.js +16 -0
  57. package/dist/optimizer/work-task-cache-description.js +5 -2
  58. package/dist/planner/service-definition.js +5 -0
  59. package/dist/planner/utils/append-work-dependencies.js +5 -2
  60. package/dist/planner/utils/append-work-environment.js +2 -0
  61. package/dist/planner/utils/append-work-service.js +5 -0
  62. package/dist/planner/utils/append-work-task.js +20 -1
  63. package/dist/planner/utils/assert-item-paths.js +50 -0
  64. package/dist/planner/utils/hosted-volumes.js +35 -0
  65. package/dist/planner/utils/task-arguments.js +3 -0
  66. package/dist/planner/work-network.js +193 -0
  67. package/dist/planner/work-runtime-docker.js +43 -1
  68. package/dist/planner/work-runtime-kubernetes.js +370 -111
  69. package/dist/planner/work-runtime-local.js +2 -1
  70. package/dist/program.js +33 -5
  71. package/dist/remote/annotations.js +115 -0
  72. package/dist/remote/bundle-text.js +24 -0
  73. package/dist/remote/bundle.js +9 -1
  74. package/dist/remote/remote-commands.js +15 -3
  75. package/dist/remote/remote-work-commands.js +272 -71
  76. package/dist/remote/server-client.js +18 -5
  77. package/dist/remote/source-manifest.js +15 -2
  78. package/dist/remote/token-source.js +67 -0
  79. package/dist/schema/build-file-base-task-schema.js +7 -0
  80. package/dist/schema/build-file-container-service-schema.js +8 -0
  81. package/dist/schema/build-file-container-task-schema.js +3 -0
  82. package/dist/schema/build-file-environment-schema.js +9 -0
  83. package/dist/schema/network-schema.js +78 -0
  84. package/dist/schema/reference-parser.js +2 -0
  85. package/dist/schema/schema-parser.js +16 -3
  86. package/dist/schema/work-scope-parser.js +5 -0
  87. package/dist/secrets/command-secret-provider.js +73 -10
  88. package/dist/secrets/github-app-token-command.js +26 -0
  89. package/dist/secrets/github-app-token.js +191 -0
  90. package/dist/server/accounts-api.js +9 -2
  91. package/dist/server/definitions-api.js +69 -47
  92. package/dist/server/definitions.js +76 -51
  93. package/dist/server/executor.js +156 -41
  94. package/dist/server/git-checkout.js +72 -8
  95. package/dist/server/kubernetes-backend.js +603 -0
  96. package/dist/server/kubernetes-sandbox-storage.js +997 -0
  97. package/dist/server/oauth.js +12 -0
  98. package/dist/server/plan.js +88 -2
  99. package/dist/server/policy.js +104 -15
  100. package/dist/server/proposals-api.js +24 -40
  101. package/dist/server/proposals.js +12 -25
  102. package/dist/server/repo-access.js +37 -6
  103. package/dist/server/run-logs.js +217 -0
  104. package/dist/server/run-plan.js +48 -2
  105. package/dist/server/run-request.js +29 -10
  106. package/dist/server/run-store.js +5 -0
  107. package/dist/server/run-worker-command.js +13 -1
  108. package/dist/server/run-worker.js +121 -24
  109. package/dist/server/runs.js +191 -10
  110. package/dist/server/sandbox-docker.js +62 -0
  111. package/dist/server/sandbox-files-api.js +269 -0
  112. package/dist/server/sandbox-files.js +1054 -0
  113. package/dist/server/sandbox-patch.js +481 -0
  114. package/dist/server/sandbox-pod-command.js +15 -0
  115. package/dist/server/sandbox-pod.js +146 -0
  116. package/dist/server/sandbox-storage.js +462 -0
  117. package/dist/server/sandboxes-api.js +216 -0
  118. package/dist/server/sandboxes.js +519 -0
  119. package/dist/server/server-command.js +39 -20
  120. package/dist/server/server-config.js +443 -22
  121. package/dist/server/server.js +219 -40
  122. package/dist/utils/abort-on-signals.js +46 -6
  123. package/dist/utils/run-id.js +12 -0
  124. package/dist/utils/tar.js +25 -0
  125. package/harness/opencode.ts +11 -0
  126. package/harness/pi.ts +7 -0
  127. package/package.json +8 -2
  128. package/dist/remote/text-diff.js +0 -89
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.diffBundles = exports.diffLines = exports.visible = void 0;
4
- // Text from a proposal is shown to somebody who decides on it, so nothing in it may
5
- // rewrite the terminal or hide what it says: control and format characters (which
6
- // include the ones that reorder text) are shown as `?`. Long lines are not cut,
7
- // what is hidden behind a cut is what a reviewer needs to see.
8
- function visible(line) {
9
- return line.replace(/\t/g, ' ').replace(/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/gu, '?');
10
- }
11
- exports.visible = visible;
12
- // Beyond this many comparisons a file is shown whole instead of compared.
13
- const MAX_CELLS = 4000000;
14
- // The lines that differ, with `context` lines around each change.
15
- function diffLines(before, after, context = 2) {
16
- if ((before.length + 1) * (after.length + 1) > MAX_CELLS) {
17
- return undefined;
18
- }
19
- const n = before.length;
20
- const m = after.length;
21
- // lengths of the longest common suffixes
22
- const table = Array.from({ length: n + 1 }, () => new Uint32Array(m + 1));
23
- for (let i = n - 1; i >= 0; i--) {
24
- for (let j = m - 1; j >= 0; j--) {
25
- table[i][j] = before[i] === after[j] ? table[i + 1][j + 1] + 1 : Math.max(table[i + 1][j], table[i][j + 1]);
26
- }
27
- }
28
- const all = [];
29
- let i = 0;
30
- let j = 0;
31
- while (i < n && j < m) {
32
- if (before[i] === after[j]) {
33
- all.push({ type: ' ', text: before[i] });
34
- i++;
35
- j++;
36
- }
37
- else if (table[i + 1][j] >= table[i][j + 1]) {
38
- all.push({ type: '-', text: before[i++] });
39
- }
40
- else {
41
- all.push({ type: '+', text: after[j++] });
42
- }
43
- }
44
- while (i < n)
45
- all.push({ type: '-', text: before[i++] });
46
- while (j < m)
47
- all.push({ type: '+', text: after[j++] });
48
- const keep = new Array(all.length).fill(false);
49
- all.forEach((line, index) => {
50
- if (line.type !== ' ') {
51
- for (let k = Math.max(0, index - context); k <= Math.min(all.length - 1, index + context); k++) {
52
- keep[k] = true;
53
- }
54
- }
55
- });
56
- return all.filter((_, index) => keep[index]);
57
- }
58
- exports.diffLines = diffLines;
59
- const lines = (text) => (text === '' ? [] : text.replace(/\n$/, '').split('\n'));
60
- // What a proposal changes against the version it follows, file by file.
61
- function diffBundles(base, proposed) {
62
- const out = [];
63
- const before = base?.files ?? {};
64
- const paths = [...new Set([...Object.keys(before), ...Object.keys(proposed.files)])].sort();
65
- for (const path of paths) {
66
- const old = before[path];
67
- const next = proposed.files[path];
68
- if (old === next) {
69
- continue;
70
- }
71
- const status = old === undefined ? 'added' : next === undefined ? 'removed' : 'changed';
72
- out.push(`--- ${visible(path)} (${status})`);
73
- const compared = old !== undefined && next !== undefined ? diffLines(lines(old), lines(next)) : undefined;
74
- if (compared) {
75
- compared.forEach((line) => out.push(`${line.type} ${visible(line.text)}`));
76
- }
77
- else {
78
- // added, removed or too large to compare: all of the old, then all of the new
79
- lines(old ?? '').forEach((line) => out.push(`- ${visible(line)}`));
80
- lines(next ?? '').forEach((line) => out.push(`+ ${visible(line)}`));
81
- }
82
- }
83
- if (base && base.entry !== proposed.entry) {
84
- out.unshift(`entry file: ${visible(base.entry)} -> ${visible(proposed.entry)}`);
85
- }
86
- return out;
87
- }
88
- exports.diffBundles = diffBundles;
89
- //# sourceMappingURL=text-diff.js.map