@snappedly-tools/shipyard 0.9.2 → 0.10.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 (46) hide show
  1. package/README.md +4 -2
  2. package/dist/{chunk-NQRFVKCU.js → chunk-2SEMX2NX.js} +2 -2
  3. package/dist/{chunk-NQRFVKCU.js.map → chunk-2SEMX2NX.js.map} +1 -1
  4. package/dist/{chunk-57EEKW3R.js → chunk-BAP7BWQ2.js} +17 -8
  5. package/dist/chunk-BAP7BWQ2.js.map +1 -0
  6. package/dist/{chunk-HXSZM52J.js → chunk-IVE7QDGC.js} +17 -11
  7. package/dist/chunk-IVE7QDGC.js.map +1 -0
  8. package/dist/{chunk-JZUBT4WG.js → chunk-KSTSHZNH.js} +3 -3
  9. package/dist/{chunk-JZUBT4WG.js.map → chunk-KSTSHZNH.js.map} +1 -1
  10. package/dist/{createSandbox-DmbnWAZv.d.ts → createSandbox-Bqopwday.d.ts} +6 -4
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.js +58 -13
  13. package/dist/index.js.map +1 -1
  14. package/dist/integrations/github.js +1 -1
  15. package/dist/main.js +26 -7
  16. package/dist/main.js.map +1 -1
  17. package/dist/sandboxes/docker.js +2 -2
  18. package/dist/templates/parallel-planner/block-scope.sh +6 -0
  19. package/dist/templates/parallel-planner/handoff.sh +7 -2
  20. package/dist/templates/parallel-planner/main.mts +25 -14
  21. package/dist/templates/parallel-planner/setup.sh +8 -1
  22. package/dist/templates/parallel-planner/triage-prompt.md +3 -1
  23. package/dist/templates/parallel-planner-with-review/block-scope.sh +6 -0
  24. package/dist/templates/parallel-planner-with-review/handoff.sh +7 -2
  25. package/dist/templates/parallel-planner-with-review/main.mts +26 -15
  26. package/dist/templates/parallel-planner-with-review/setup.sh +8 -1
  27. package/dist/templates/parallel-planner-with-review/triage-prompt.md +3 -1
  28. package/dist/templates/sequential-reviewer/block-scope.sh +6 -0
  29. package/dist/templates/sequential-reviewer/handoff.sh +7 -2
  30. package/dist/templates/sequential-reviewer/main.mts +21 -14
  31. package/dist/templates/sequential-reviewer/setup.sh +8 -1
  32. package/dist/templates/sequential-reviewer/triage-prompt.md +3 -1
  33. package/dist/templates/shared/block-scope.sh +6 -0
  34. package/dist/templates/shared/handoff.sh +7 -2
  35. package/dist/templates/shared/setup.sh +8 -1
  36. package/dist/templates/shared/triage-prompt.md +3 -1
  37. package/dist/templates/simple-loop/block-scope.sh +6 -0
  38. package/dist/templates/simple-loop/handoff.sh +7 -2
  39. package/dist/templates/simple-loop/main.mts +20 -13
  40. package/dist/templates/simple-loop/setup.sh +8 -1
  41. package/dist/templates/simple-loop/triage-prompt.md +3 -1
  42. package/dist/workflow.d.ts +1 -1
  43. package/dist/workflow.js +2 -2
  44. package/package.json +1 -1
  45. package/dist/chunk-57EEKW3R.js.map +0 -1
  46. package/dist/chunk-HXSZM52J.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { createWorkBrief, parseRepositoryPolicy, processHumanReviewDecision, runTriage, parseWorkBrief } from '../chunk-NQRFVKCU.js';
1
+ import { createWorkBrief, parseRepositoryPolicy, processHumanReviewDecision, runTriage, parseWorkBrief } from '../chunk-2SEMX2NX.js';
2
2
  import { createHmac, timingSafeEqual, createHash } from 'crypto';
3
3
 
4
4
  var asBytes = (value) => typeof value === "string" ? Buffer.from(value, "utf8") : Buffer.from(value);
package/dist/main.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { CODEX_MODELS, purgeRunLogs, withFriendlyErrors, DEFAULT_LOG_RETENTION_DAYS, resolveEnv } from './chunk-HXSZM52J.js';
3
- import { buildImage, RunnerLifecycleError, removeRepositoryRunner, removeImage, defaultImageName, validateExistingRepositoryRunner, RUNNER_INSTALL_METADATA, RUNNER_CONTROLLER_LOCK, lockOwnsProcess, recoverRepositoryRunner, REPOSITORY_RUNNER_OWNER_ENV, removeOwnedRepositoryRunnerContainers, RUNNER_WORK_DIR } from './chunk-JZUBT4WG.js';
4
- import { SANDBOX_REPO_DIR, Display, InitError, ACTIVATION_LABEL, PRODUCT_NAME, CONFIG_DIR, CLI_NAME, RUNNER_DIR, ClackDisplay, ConfigDirError, ExecHostError, LOCKS_DIR, assertProtectedDirectoryIdentities, repositoryRunnerEnvironment } from './chunk-57EEKW3R.js';
2
+ import { CODEX_MODELS, purgeRunLogs, withFriendlyErrors, DEFAULT_LOG_RETENTION_DAYS, readEnvFile, resolveEnv } from './chunk-IVE7QDGC.js';
3
+ import { buildImage, RunnerLifecycleError, removeRepositoryRunner, removeImage, defaultImageName, validateExistingRepositoryRunner, RUNNER_INSTALL_METADATA, RUNNER_CONTROLLER_LOCK, lockOwnsProcess, recoverRepositoryRunner, REPOSITORY_RUNNER_OWNER_ENV, removeOwnedRepositoryRunnerContainers, RUNNER_WORK_DIR } from './chunk-KSTSHZNH.js';
4
+ import { SANDBOX_REPO_DIR, Display, InitError, ACTIVATION_LABEL, PRODUCT_NAME, CONFIG_DIR, CLI_NAME, RUNNER_DIR, ClackDisplay, ConfigDirError, ExecHostError, LOCKS_DIR, assertProtectedDirectoryIdentities, repositoryRunnerEnvironment } from './chunk-BAP7BWQ2.js';
5
5
  import { NodeContext, NodeRuntime, NodeFileSystem } from '@effect/platform-node';
6
6
  import { Effect, Layer, Option, Exit, Cause } from 'effect';
7
7
  import { Options, Command } from '@effect/cli';
@@ -65,12 +65,20 @@ var CODEX_CHATGPT_AUTH_OPTIONS = `{
65
65
  var roleModelEnvExample = (agentName) => agentName === "codex" ? `# Optional model choices for Shipyard workflows.
66
66
  # Choose models available to your Codex CLI account: https://learn.chatgpt.com/docs/models
67
67
  # The provider must support each value. Aliases can change their target over time.
68
- # SHIPYARD_ROUTINE_MODEL=gpt-6-luna
69
- # SHIPYARD_STRONG_MODEL=gpt-6-sol` : `# Optional model choices for Shipyard workflows.
68
+ SHIPYARD_ROUTINE_MODEL=gpt-6-luna
69
+ SHIPYARD_STRONG_MODEL=gpt-6-sol
70
+ # Optional reasoning effort per role: low, medium, high, xhigh, or max.
71
+ # Leave unset to use the provider's default effort.
72
+ SHIPYARD_ROUTINE_REASONING_EFFORT=max
73
+ SHIPYARD_STRONG_REASONING_EFFORT=high` : `# Optional model choices for Shipyard workflows.
70
74
  # Choose aliases or model IDs available to your Claude Code provider: https://code.claude.com/docs/en/model-config
71
75
  # The provider must support each value. Aliases can change their target over time.
72
76
  # SHIPYARD_ROUTINE_MODEL=sonnet
73
- # SHIPYARD_STRONG_MODEL=opus`;
77
+ # SHIPYARD_STRONG_MODEL=opus
78
+ # Optional reasoning effort per role: low, medium, high, xhigh, or max.
79
+ # Leave unset to use the provider's default effort.
80
+ # SHIPYARD_ROUTINE_REASONING_EFFORT=high
81
+ # SHIPYARD_STRONG_REASONING_EFFORT=high`;
74
82
  var TEMPLATES = [
75
83
  {
76
84
  name: "simple-loop",
@@ -1424,6 +1432,9 @@ var defaultAdapters2 = {
1424
1432
  resolveEnvironment: (repoDir) => Effect.runPromise(
1425
1433
  resolveEnv(repoDir).pipe(Effect.provide(NodeFileSystem.layer))
1426
1434
  ),
1435
+ readEnvironmentFile: (repoDir) => Effect.runPromise(
1436
+ readEnvFile(repoDir).pipe(Effect.provide(NodeFileSystem.layer))
1437
+ ),
1427
1438
  run: async (command, args, options) => {
1428
1439
  const result = await execFileAsync2(command, [...args], {
1429
1440
  cwd: options.cwd,
@@ -1528,6 +1539,14 @@ var requireRunnerContext = async (repoDir, adapters) => {
1528
1539
  "The official repository runner executable is missing. Reinstall the repository runner."
1529
1540
  );
1530
1541
  }
1542
+ const configuredEnvironment = await adapters.readEnvironmentFile(repoDir).catch((error) => {
1543
+ throw controlFailure("Reading repository credentials", error);
1544
+ });
1545
+ if (!configuredEnvironment.GH_TOKEN?.trim()) {
1546
+ throw new RunnerControlError(
1547
+ "Set GH_TOKEN in .shipyard/.env before starting the repository runner."
1548
+ );
1549
+ }
1531
1550
  for (const [command, purpose] of [
1532
1551
  ["git", "reading the repository remote"],
1533
1552
  ["npx", "running the local Shipyard package"],
@@ -2381,7 +2400,7 @@ var runnerCommand = Command.make(
2381
2400
  purgeRunnerCommand
2382
2401
  ])
2383
2402
  );
2384
- var VERSION = "0.9.2" ;
2403
+ var VERSION = "0.10.0" ;
2385
2404
  var SHIPYARD_PACKAGE_NAME = "@snappedly-tools/shipyard";
2386
2405
  var isMissingPath = (error) => error !== null && typeof error === "object" && "code" in error && error.code === "ENOENT";
2387
2406
  var lstatIfPresent = async (path) => {