humanish 0.15.0 → 0.15.2

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 (72) hide show
  1. package/README.md +33 -31
  2. package/dist/claude-agent-sdk.js +14 -7
  3. package/dist/claude-agent-sdk.js.map +1 -1
  4. package/dist/codex-app-server-ui.d.ts +1 -1
  5. package/dist/codex-app-server-ui.js +69 -39
  6. package/dist/codex-app-server-ui.js.map +1 -1
  7. package/dist/codex-app-server.d.ts +3 -0
  8. package/dist/codex-app-server.js +15 -8
  9. package/dist/codex-app-server.js.map +1 -1
  10. package/dist/concurrent-shared-world-lab.js +18 -16
  11. package/dist/concurrent-shared-world-lab.js.map +1 -1
  12. package/dist/core/git-state.d.ts +2 -0
  13. package/dist/core/git-state.js +152 -17
  14. package/dist/core/git-state.js.map +1 -1
  15. package/dist/core/git-workspace.d.ts +31 -0
  16. package/dist/core/git-workspace.js +447 -0
  17. package/dist/core/git-workspace.js.map +1 -0
  18. package/dist/cua-actor-lab.d.ts +3 -2
  19. package/dist/cua-actor-lab.js +34 -23
  20. package/dist/cua-actor-lab.js.map +1 -1
  21. package/dist/e2b-terminal-lab.js +111 -46
  22. package/dist/e2b-terminal-lab.js.map +1 -1
  23. package/dist/feedback.js +139 -101
  24. package/dist/feedback.js.map +1 -1
  25. package/dist/init.d.ts +1 -1
  26. package/dist/init.js +108 -22
  27. package/dist/init.js.map +1 -1
  28. package/dist/lab-config.d.ts +5 -0
  29. package/dist/lab-config.js +38 -0
  30. package/dist/lab-config.js.map +1 -1
  31. package/dist/labs.js +258 -52
  32. package/dist/labs.js.map +1 -1
  33. package/dist/observer-assets.js +3 -2
  34. package/dist/observer-assets.js.map +1 -1
  35. package/dist/observer-static.js +131 -17
  36. package/dist/observer-static.js.map +1 -1
  37. package/dist/observer.js +263 -66
  38. package/dist/observer.js.map +1 -1
  39. package/dist/openai-responses-cu.js +18 -4
  40. package/dist/openai-responses-cu.js.map +1 -1
  41. package/dist/oss-lab.js +59 -14
  42. package/dist/oss-lab.js.map +1 -1
  43. package/dist/oss-meta-lab.d.ts +2 -4
  44. package/dist/oss-meta-lab.js +117 -477
  45. package/dist/oss-meta-lab.js.map +1 -1
  46. package/dist/program.js +23 -21
  47. package/dist/program.js.map +1 -1
  48. package/dist/run-paths.d.ts +56 -0
  49. package/dist/run-paths.js +340 -0
  50. package/dist/run-paths.js.map +1 -0
  51. package/dist/run.d.ts +14 -4
  52. package/dist/run.js +595 -306
  53. package/dist/run.js.map +1 -1
  54. package/dist/scripted-browser-actor.d.ts +7 -4
  55. package/dist/scripted-browser-actor.js +154 -41
  56. package/dist/scripted-browser-actor.js.map +1 -1
  57. package/dist/scripted-browser-lab.js +95 -45
  58. package/dist/scripted-browser-lab.js.map +1 -1
  59. package/dist/selected-output-paths.d.ts +49 -0
  60. package/dist/selected-output-paths.js +354 -0
  61. package/dist/selected-output-paths.js.map +1 -0
  62. package/dist/shared-world-lab.js +13 -12
  63. package/dist/shared-world-lab.js.map +1 -1
  64. package/dist/source-archive.js +44 -1
  65. package/dist/source-archive.js.map +1 -1
  66. package/docs/architecture/oss-lab-poc.md +8 -0
  67. package/docs/assets/humanish-observer-hero.png +0 -0
  68. package/docs/contracts/policy.md +7 -1
  69. package/docs/goals/current.md +20 -1
  70. package/docs/product/open-source-install-experience.md +9 -1
  71. package/docs/ramp/README.md +14 -7
  72. package/package.json +1 -1
package/dist/feedback.js CHANGED
@@ -1,101 +1,112 @@
1
- import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
1
+ import { realpath } from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { loadRunBundle, verifyRun } from "./run.js";
3
+ import { loadRunBundlePrepared, verifyRunPrepared } from "./run.js";
4
+ import { bindExistingRunArtifactPaths, isSafeRunIdSegment, resolveLatestRunDirectory, validatePreparedRunArtifactPaths } from "./run-paths.js";
5
+ import { bindExistingManagedHumanishOutputDirectory, readContainedRegularFile, writeContainedOutputFile } from "./selected-output-paths.js";
4
6
  export const FEEDBACK_SCHEMA = "humanish.feedback.v1";
5
7
  export const FEEDBACK_RESULT_SCHEMA = "humanish.feedback-result.v1";
6
8
  export async function draftFeedback(cwdInput, runInput) {
9
+ return (await draftFeedbackBound(cwdInput, runInput)).result;
10
+ }
11
+ async function draftFeedbackBound(cwdInput, runInput) {
7
12
  const cwd = path.resolve(cwdInput);
8
- const loaded = await loadRunBundle(cwd, runInput);
9
- if (!loaded) {
10
- return {
11
- schema: FEEDBACK_RESULT_SCHEMA,
12
- ok: false,
13
- cwd,
14
- run: runInput,
15
- error: {
16
- code: "HUMANISH_RUN_NOT_FOUND",
17
- message: `Run not found: ${runInput}`
18
- }
19
- };
13
+ const context = await resolveFeedbackRunContext(cwd, runInput);
14
+ if (!context) {
15
+ return { result: {
16
+ schema: FEEDBACK_RESULT_SCHEMA,
17
+ ok: false,
18
+ cwd,
19
+ run: runInput,
20
+ error: {
21
+ code: "HUMANISH_RUN_NOT_FOUND",
22
+ message: `Run not found: ${runInput}`
23
+ }
24
+ } };
20
25
  }
21
- const verified = await verifyRun(cwd, runInput);
26
+ const verified = await verifyRunPrepared(context.physicalCwd, context.storedRunId, context.preparedRunPaths);
27
+ await validatePreparedRunArtifactPaths(context.preparedRunPaths);
22
28
  if (!verified.ok) {
23
- return {
24
- schema: FEEDBACK_RESULT_SCHEMA,
25
- ok: false,
26
- cwd,
27
- run: runInput,
28
- error: {
29
- code: "HUMANISH_INVALID_RUN_BUNDLE",
30
- message: verified.error?.message ?? "Run bundle failed verification."
31
- }
32
- };
29
+ return { context, result: {
30
+ schema: FEEDBACK_RESULT_SCHEMA,
31
+ ok: false,
32
+ cwd,
33
+ run: runInput,
34
+ error: {
35
+ code: "HUMANISH_INVALID_RUN_BUNDLE",
36
+ message: verified.error?.message ?? "Run bundle failed verification."
37
+ }
38
+ } };
33
39
  }
34
40
  if (verified.shareSafety.status !== "share_ready") {
35
- return {
41
+ return { context, result: {
42
+ schema: FEEDBACK_RESULT_SCHEMA,
43
+ ok: false,
44
+ cwd,
45
+ run: runInput,
46
+ shareSafety: verified.shareSafety,
47
+ error: {
48
+ code: "HUMANISH_FEEDBACK_SHARE_SAFETY_BLOCKED",
49
+ message: `Run is ${verified.shareSafety.status}, not share_ready: ${verified.shareSafety.reasons.map((reason) => reason.code).join(", ")}`
50
+ }
51
+ } };
52
+ }
53
+ const draft = buildDraft(context.loaded.bundle, context.loaded.bundlePath);
54
+ const draftPath = path.join(context.preparedRunPaths.relativeRunRoot, "feedback", "draft.json");
55
+ await writeJson(context.preparedRunPaths, path.join("feedback", "draft.json"), draft);
56
+ return { context, result: {
36
57
  schema: FEEDBACK_RESULT_SCHEMA,
37
- ok: false,
58
+ ok: true,
38
59
  cwd,
39
60
  run: runInput,
40
- shareSafety: verified.shareSafety,
41
- error: {
42
- code: "HUMANISH_FEEDBACK_SHARE_SAFETY_BLOCKED",
43
- message: `Run is ${verified.shareSafety.status}, not share_ready: ${verified.shareSafety.reasons.map((reason) => reason.code).join(", ")}`
44
- }
45
- };
46
- }
47
- const draft = buildDraft(loaded.bundle, loaded.bundlePath);
48
- const feedbackDir = path.join(loaded.runDir, "feedback");
49
- const draftPath = path.join(feedbackDir, "draft.json");
50
- await mkdir(feedbackDir, { recursive: true });
51
- await writeJson(draftPath, draft);
52
- return {
53
- schema: FEEDBACK_RESULT_SCHEMA,
54
- ok: true,
55
- cwd,
56
- run: runInput,
57
- draftPath: path.relative(cwd, draftPath),
58
- draft
59
- };
61
+ draftPath,
62
+ draft
63
+ } };
60
64
  }
61
65
  export async function verifyFeedback(cwdInput, runInput) {
62
- const drafted = await draftFeedback(cwdInput, runInput);
63
- if (!drafted.ok || !drafted.draft) {
66
+ return (await verifyFeedbackBound(cwdInput, runInput)).result;
67
+ }
68
+ async function verifyFeedbackBound(cwdInput, runInput) {
69
+ const drafted = await draftFeedbackBound(cwdInput, runInput);
70
+ if (!drafted.result.ok || !drafted.result.draft || !drafted.context) {
64
71
  return drafted;
65
72
  }
66
73
  const missingEvidence = [];
67
- for (const evidence of drafted.draft.evidence) {
68
- if (!await fileExists(path.join(drafted.cwd, evidence.path))) {
74
+ for (const evidence of drafted.result.draft.evidence) {
75
+ if (!await isSafeFeedbackEvidenceFile(drafted.context, evidence.path)) {
69
76
  missingEvidence.push(evidence.path);
70
77
  }
71
78
  }
72
79
  if (missingEvidence.length > 0) {
73
- return {
74
- ...drafted,
75
- ok: false,
76
- error: {
77
- code: "HUMANISH_INVALID_FEEDBACK_DRAFT",
78
- message: `Feedback evidence missing: ${missingEvidence.join(", ")}`
79
- }
80
- };
80
+ return { context: drafted.context, result: {
81
+ ...drafted.result,
82
+ ok: false,
83
+ error: {
84
+ code: "HUMANISH_INVALID_FEEDBACK_DRAFT",
85
+ message: `Feedback evidence missing: ${missingEvidence.join(", ")}`
86
+ }
87
+ } };
81
88
  }
82
89
  return drafted;
83
90
  }
84
- export async function renderIssueMarkdown(cwdInput, runInput, repo) {
85
- const verified = await verifyFeedback(cwdInput, runInput);
86
- if (!verified.ok || !verified.draft || !verified.draftPath) {
87
- return verified;
91
+ async function isSafeFeedbackEvidenceFile(context, evidencePath) {
92
+ const absolute = path.resolve(context.physicalCwd, evidencePath);
93
+ const relative = path.relative(context.preparedRunPaths.physicalRunRoot, absolute);
94
+ if (relative === "" || relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) {
95
+ return false;
88
96
  }
89
- const loaded = await loadRunBundle(verified.cwd, runInput);
90
- if (!loaded) {
91
- return verified;
97
+ return await readContainedRegularFile(context.preparedRunPaths, relative) !== null;
98
+ }
99
+ export async function renderIssueMarkdown(cwdInput, runInput, repo) {
100
+ const verified = await verifyFeedbackBound(cwdInput, runInput);
101
+ if (!verified.result.ok || !verified.result.draft || !verified.result.draftPath || !verified.context) {
102
+ return verified.result;
92
103
  }
93
- const issueMarkdown = renderMarkdown(verified.draft, repo);
94
- const issuePath = path.join(loaded.runDir, "feedback", "issue.md");
95
- await writeFile(issuePath, issueMarkdown, "utf8");
104
+ const issueMarkdown = renderMarkdown(verified.result.draft, repo);
105
+ const issuePath = path.join(verified.context.preparedRunPaths.relativeRunRoot, "feedback", "issue.md");
106
+ await writeContainedOutputFile(verified.context.preparedRunPaths, path.join("feedback", "issue.md"), issueMarkdown, "utf8");
96
107
  return {
97
- ...verified,
98
- issuePath: path.relative(verified.cwd, issuePath),
108
+ ...verified.result,
109
+ issuePath,
99
110
  issueMarkdown
100
111
  };
101
112
  }
@@ -112,8 +123,8 @@ export async function renderIssueUrl(cwdInput, runInput, repo) {
112
123
  }
113
124
  export async function listFeedback(cwdInput, runInput) {
114
125
  const cwd = path.resolve(cwdInput);
115
- const loaded = await loadRunBundle(cwd, runInput);
116
- if (!loaded) {
126
+ const context = await resolveFeedbackRunContext(cwd, runInput);
127
+ if (!context) {
117
128
  return {
118
129
  schema: FEEDBACK_RESULT_SCHEMA,
119
130
  ok: false,
@@ -125,17 +136,66 @@ export async function listFeedback(cwdInput, runInput) {
125
136
  }
126
137
  };
127
138
  }
128
- const draftPath = path.join(loaded.runDir, "feedback", "draft.json");
129
- const draftText = await readTextIfExists(draftPath);
130
- const draft = draftText === null ? undefined : JSON.parse(draftText);
139
+ const draftBytes = await readContainedRegularFile(context.preparedRunPaths, path.join("feedback", "draft.json"));
140
+ const draft = draftBytes === null ? undefined : JSON.parse(draftBytes.toString("utf8"));
141
+ const draftPath = path.join(context.preparedRunPaths.relativeRunRoot, "feedback", "draft.json");
131
142
  return {
132
143
  schema: FEEDBACK_RESULT_SCHEMA,
133
144
  ok: true,
134
145
  cwd,
135
146
  run: runInput,
136
- ...(draft ? { draftPath: path.relative(cwd, draftPath), draft } : {})
147
+ ...(draft ? { draftPath, draft } : {})
137
148
  };
138
149
  }
150
+ async function resolveFeedbackRunContext(cwd, runInput) {
151
+ let physicalCwd;
152
+ try {
153
+ physicalCwd = await realpath(cwd);
154
+ }
155
+ catch (error) {
156
+ if (error instanceof Error && "code" in error && error.code === "ENOENT") {
157
+ return null;
158
+ }
159
+ throw error;
160
+ }
161
+ let storedRunId = runInput;
162
+ let preparedRunPaths;
163
+ if (runInput === "latest") {
164
+ const runsRoot = await bindExistingManagedHumanishOutputDirectory(physicalCwd, "runs");
165
+ if (!runsRoot)
166
+ return null;
167
+ const pointerBytes = await readContainedRegularFile(runsRoot, "latest.json");
168
+ if (!pointerBytes)
169
+ return null;
170
+ const pointer = JSON.parse(pointerBytes.toString("utf8"));
171
+ if (typeof pointer.runId !== "string"
172
+ || typeof pointer.path !== "string"
173
+ || !resolveLatestRunDirectory(physicalCwd, { path: pointer.path, runId: pointer.runId })) {
174
+ return null;
175
+ }
176
+ storedRunId = pointer.runId;
177
+ preparedRunPaths = await bindExistingRunArtifactPaths(physicalCwd, storedRunId);
178
+ if (preparedRunPaths.physicalRunsRoot !== runsRoot.physicalPath
179
+ || preparedRunPaths.runsRootIdentity.birthtimeNs !== runsRoot.identity.birthtimeNs
180
+ || preparedRunPaths.runsRootIdentity.dev !== runsRoot.identity.dev
181
+ || preparedRunPaths.runsRootIdentity.ino !== runsRoot.identity.ino) {
182
+ throw new Error("Feedback runs root changed physical destination.");
183
+ }
184
+ }
185
+ else {
186
+ if (!isSafeRunIdSegment(runInput))
187
+ return null;
188
+ const boundRunPaths = await bindExistingRunArtifactPaths(physicalCwd, storedRunId).catch(() => null);
189
+ if (!boundRunPaths)
190
+ return null;
191
+ preparedRunPaths = boundRunPaths;
192
+ }
193
+ const loaded = await loadRunBundlePrepared(physicalCwd, preparedRunPaths);
194
+ if (!loaded)
195
+ return null;
196
+ await validatePreparedRunArtifactPaths(preparedRunPaths);
197
+ return { cwd, loaded, physicalCwd, preparedRunPaths, storedRunId };
198
+ }
139
199
  function buildDraft(bundle, bundlePath) {
140
200
  const candidate = bundle.feedbackCandidates.find((item) => isUsableFeedbackCandidate(item));
141
201
  if (candidate) {
@@ -285,29 +345,7 @@ ${draft.acceptance_proof.map((proof) => ` - ${proof}`).join("\n")}
285
345
  function encodeGitHubRepoPath(repo) {
286
346
  return repo.split("/").map((part) => encodeURIComponent(part)).join("/");
287
347
  }
288
- async function writeJson(filePath, value) {
289
- await writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`, "utf8");
290
- }
291
- async function readTextIfExists(filePath) {
292
- try {
293
- return await readFile(filePath, "utf8");
294
- }
295
- catch (error) {
296
- if (error instanceof Error && "code" in error && error.code === "ENOENT") {
297
- return null;
298
- }
299
- throw error;
300
- }
301
- }
302
- async function fileExists(filePath) {
303
- try {
304
- return (await stat(filePath)).isFile();
305
- }
306
- catch (error) {
307
- if (error instanceof Error && "code" in error && error.code === "ENOENT") {
308
- return false;
309
- }
310
- throw error;
311
- }
348
+ async function writeJson(root, relativePath, value) {
349
+ await writeContainedOutputFile(root, relativePath, `${JSON.stringify(value, null, 2)}\n`, "utf8");
312
350
  }
313
351
  //# sourceMappingURL=feedback.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../src/feedback.ts"],"names":[],"mappings":"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"}
package/dist/init.d.ts CHANGED
@@ -19,7 +19,7 @@ export interface InitResult {
19
19
  changes: InitChange[];
20
20
  warnings: string[];
21
21
  error?: {
22
- code: "HUMANISH_CONFIRMATION_REQUIRED" | "HUMANISH_INVALID_CWD" | "HUMANISH_INVALID_PACKAGE_JSON";
22
+ code: "HUMANISH_CONFIRMATION_REQUIRED" | "HUMANISH_INVALID_CWD" | "HUMANISH_INVALID_PACKAGE_JSON" | "HUMANISH_UNSAFE_PROJECT_PATH";
23
23
  message: string;
24
24
  };
25
25
  }
package/dist/init.js CHANGED
@@ -1,29 +1,44 @@
1
- import { mkdir, readFile, stat, writeFile } from "node:fs/promises";
1
+ import { lstat, realpath, stat } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { humanishScripts, runtimeDirectories, starterFiles } from "./init-templates.js";
4
+ import { assertPreparedSelectedOutputDirectory, prepareContainedOutputDirectory, prepareSelectedOutputDirectory, readContainedRegularFile, writeContainedOutputFile } from "./selected-output-paths.js";
4
5
  export const INIT_RESPONSE_SCHEMA = "humanish.init-result.v1";
5
6
  export async function runInit(options) {
6
- const cwd = path.resolve(options.cwd);
7
+ const requestedCwd = path.resolve(options.cwd);
7
8
  const mode = getMode(options);
8
9
  const warnings = [];
9
10
  const changes = [];
10
11
  const writes = [];
11
12
  const dirs = [];
12
- const cwdCheck = await validateCwd(cwd);
13
+ const cwdCheck = await validateCwd(requestedCwd);
13
14
  if (cwdCheck) {
14
15
  return {
15
16
  schema: INIT_RESPONSE_SCHEMA,
16
17
  ok: false,
17
18
  mode,
18
- cwd,
19
+ cwd: requestedCwd,
19
20
  changes,
20
21
  warnings,
21
22
  error: cwdCheck
22
23
  };
23
24
  }
25
+ const cwd = await realpath(requestedCwd);
26
+ const preparedProjectRoot = await prepareSelectedOutputDirectory(path.dirname(cwd), cwd);
27
+ const initialPathCheck = await validateInitProjectPaths(cwd);
28
+ if (initialPathCheck) {
29
+ return {
30
+ schema: INIT_RESPONSE_SCHEMA,
31
+ ok: false,
32
+ mode,
33
+ cwd: requestedCwd,
34
+ changes,
35
+ warnings,
36
+ error: initialPathCheck
37
+ };
38
+ }
24
39
  for (const file of starterFiles) {
25
40
  const absolutePath = path.join(cwd, file.path);
26
- const existing = await readTextIfExists(absolutePath);
41
+ const existing = await readTextIfExists(preparedProjectRoot, file.path);
27
42
  if (existing === null) {
28
43
  changes.push({
29
44
  path: file.path,
@@ -58,7 +73,7 @@ export async function runInit(options) {
58
73
  }
59
74
  for (const directory of runtimeDirectories) {
60
75
  const absolutePath = path.join(cwd, directory.path);
61
- const exists = await pathExists(absolutePath);
76
+ const exists = await pathExists(preparedProjectRoot, directory.path);
62
77
  changes.push({
63
78
  path: directory.path,
64
79
  action: exists ? "skip" : "mkdir",
@@ -69,12 +84,12 @@ export async function runInit(options) {
69
84
  dirs.push({ absolutePath, relativePath: directory.path });
70
85
  }
71
86
  }
72
- const gitignorePlan = await planGitignore(cwd);
87
+ const gitignorePlan = await planGitignore(preparedProjectRoot, cwd);
73
88
  changes.push(gitignorePlan.change);
74
89
  if (gitignorePlan.write) {
75
90
  writes.push(gitignorePlan.write);
76
91
  }
77
- const packagePlan = await planPackageJson(cwd);
92
+ const packagePlan = await planPackageJson(preparedProjectRoot, cwd);
78
93
  changes.push(packagePlan.change);
79
94
  warnings.push(...packagePlan.warnings);
80
95
  if (packagePlan.error) {
@@ -82,7 +97,7 @@ export async function runInit(options) {
82
97
  schema: INIT_RESPONSE_SCHEMA,
83
98
  ok: false,
84
99
  mode,
85
- cwd,
100
+ cwd: requestedCwd,
86
101
  changes,
87
102
  warnings,
88
103
  error: packagePlan.error
@@ -96,7 +111,7 @@ export async function runInit(options) {
96
111
  schema: INIT_RESPONSE_SCHEMA,
97
112
  ok: false,
98
113
  mode,
99
- cwd,
114
+ cwd: requestedCwd,
100
115
  changes,
101
116
  warnings,
102
117
  error: {
@@ -106,23 +121,78 @@ export async function runInit(options) {
106
121
  };
107
122
  }
108
123
  if (mode === "applied") {
124
+ await assertPreparedSelectedOutputDirectory(preparedProjectRoot);
125
+ const applyPathCheck = await validateInitProjectPaths(cwd);
126
+ if (applyPathCheck) {
127
+ return {
128
+ schema: INIT_RESPONSE_SCHEMA,
129
+ ok: false,
130
+ mode,
131
+ cwd: requestedCwd,
132
+ changes,
133
+ warnings,
134
+ error: applyPathCheck
135
+ };
136
+ }
109
137
  for (const directory of dirs) {
110
- await mkdir(directory.absolutePath, { recursive: true });
138
+ await prepareContainedOutputDirectory(preparedProjectRoot, directory.relativePath);
111
139
  }
112
140
  for (const write of writes) {
113
- await mkdir(path.dirname(write.absolutePath), { recursive: true });
114
- await writeFile(write.absolutePath, write.contents, "utf8");
141
+ await writeContainedOutputFile(preparedProjectRoot, write.relativePath, write.contents, "utf8");
115
142
  }
116
143
  }
117
144
  return {
118
145
  schema: INIT_RESPONSE_SCHEMA,
119
146
  ok: true,
120
147
  mode,
121
- cwd,
148
+ cwd: requestedCwd,
122
149
  changes,
123
150
  warnings
124
151
  };
125
152
  }
153
+ async function validateInitProjectPaths(cwd) {
154
+ const targets = [
155
+ ...starterFiles.map((file) => ({ path: file.path, kind: "file" })),
156
+ ...runtimeDirectories.map((directory) => ({ path: directory.path, kind: "directory" })),
157
+ { path: ".gitignore", kind: "file" },
158
+ { path: "package.json", kind: "file" }
159
+ ];
160
+ for (const targetSpec of targets) {
161
+ const relativePath = targetSpec.path;
162
+ const target = path.resolve(cwd, relativePath);
163
+ if (!isPathInside(cwd, target)) {
164
+ return unsafeProjectPath(relativePath);
165
+ }
166
+ const parts = path.relative(cwd, target).split(path.sep).filter(Boolean);
167
+ let current = cwd;
168
+ for (const [index, part] of parts.entries()) {
169
+ current = path.join(current, part);
170
+ try {
171
+ const stats = await lstat(current);
172
+ const isLeaf = index === parts.length - 1;
173
+ if (stats.isSymbolicLink()
174
+ || (!isLeaf && !stats.isDirectory())
175
+ || (isLeaf && targetSpec.kind === "file" && (!stats.isFile() || stats.nlink > 1))
176
+ || (isLeaf && targetSpec.kind === "directory" && !stats.isDirectory())) {
177
+ return unsafeProjectPath(relativePath);
178
+ }
179
+ }
180
+ catch (error) {
181
+ if (isNodeError(error) && error.code === "ENOENT") {
182
+ break;
183
+ }
184
+ return unsafeProjectPath(relativePath);
185
+ }
186
+ }
187
+ }
188
+ return null;
189
+ }
190
+ function unsafeProjectPath(relativePath) {
191
+ return {
192
+ code: "HUMANISH_UNSAFE_PROJECT_PATH",
193
+ message: `Init target must stay inside the project, use the expected regular-file or directory kind, and not traverse symbolic links or hardlinked files: ${relativePath}`
194
+ };
195
+ }
126
196
  function getMode(options) {
127
197
  if (options.dryRun) {
128
198
  return "dry-run";
@@ -132,10 +202,10 @@ function getMode(options) {
132
202
  }
133
203
  return "needs-confirmation";
134
204
  }
135
- async function planGitignore(cwd) {
205
+ async function planGitignore(projectRoot, cwd) {
136
206
  const relativePath = ".gitignore";
137
207
  const absolutePath = path.join(cwd, relativePath);
138
- const existing = await readTextIfExists(absolutePath);
208
+ const existing = await readTextIfExists(projectRoot, relativePath);
139
209
  const currentLines = existing?.split(/\r?\n/) ?? [];
140
210
  const envIndex = currentLines.lastIndexOf(".env*");
141
211
  const envExampleIndex = currentLines.lastIndexOf("!.env.example");
@@ -177,10 +247,10 @@ async function planGitignore(cwd) {
177
247
  }
178
248
  };
179
249
  }
180
- async function planPackageJson(cwd) {
250
+ async function planPackageJson(projectRoot, cwd) {
181
251
  const relativePath = "package.json";
182
252
  const absolutePath = path.join(cwd, relativePath);
183
- const existing = await readTextIfExists(absolutePath);
253
+ const existing = await readTextIfExists(projectRoot, relativePath);
184
254
  if (existing === null) {
185
255
  return {
186
256
  change: {
@@ -287,9 +357,14 @@ async function planPackageJson(cwd) {
287
357
  warnings
288
358
  };
289
359
  }
290
- async function readTextIfExists(filePath) {
360
+ async function readTextIfExists(projectRoot, relativePath) {
361
+ const bytes = await readContainedRegularFile(projectRoot, relativePath);
362
+ if (bytes !== null) {
363
+ return bytes.toString("utf8");
364
+ }
365
+ const target = path.join(projectRoot.physicalPath, relativePath);
291
366
  try {
292
- return await readFile(filePath, "utf8");
367
+ await lstat(target);
293
368
  }
294
369
  catch (error) {
295
370
  if (isNodeError(error) && error.code === "ENOENT") {
@@ -297,10 +372,16 @@ async function readTextIfExists(filePath) {
297
372
  }
298
373
  throw error;
299
374
  }
375
+ throw new Error(unsafeProjectPath(relativePath).message);
300
376
  }
301
- async function pathExists(filePath) {
377
+ async function pathExists(projectRoot, relativePath) {
378
+ await assertPreparedSelectedOutputDirectory(projectRoot);
379
+ const filePath = path.join(projectRoot.physicalPath, relativePath);
302
380
  try {
303
- await stat(filePath);
381
+ const stats = await lstat(filePath);
382
+ if (stats.isSymbolicLink() || !stats.isDirectory()) {
383
+ throw new Error(unsafeProjectPath(relativePath).message);
384
+ }
304
385
  return true;
305
386
  }
306
387
  catch (error) {
@@ -337,6 +418,11 @@ function trimTrailingNewlines(text) {
337
418
  function isRecord(value) {
338
419
  return typeof value === "object" && value !== null && !Array.isArray(value);
339
420
  }
421
+ function isPathInside(root, candidate) {
422
+ const relative = path.relative(root, candidate);
423
+ return relative === ""
424
+ || (relative !== ".." && !relative.startsWith(`..${path.sep}`) && !path.isAbsolute(relative));
425
+ }
340
426
  function isNodeError(error) {
341
427
  return error instanceof Error && "code" in error;
342
428
  }
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}