@joshuafolkken/kit 1.921.0 → 1.929.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.
- package/.claude/skills/workflow-commands/backlogrun-progress.md +13 -12
- package/.claude/skills/workflow-commands/backlogrun-steps.md +2 -1
- package/README.md +2 -1
- package/dist/hooks/batch-guard.js +6 -6
- package/dist/hooks/{chunk-UULARQ5Q.js → chunk-2PGRQ62K.js} +2 -9
- package/dist/hooks/{chunk-3HZ5MJIW.js → chunk-7XQ6TK3R.js} +2 -2
- package/dist/hooks/{chunk-UANRLZV7.js → chunk-BNFG2IFK.js} +4 -4
- package/dist/hooks/{chunk-LC765SUA.js → chunk-GQ3EVWHY.js} +8 -3
- package/dist/hooks/{chunk-XMR3BS35.js → chunk-I3JP3D4A.js} +3 -3
- package/dist/hooks/{chunk-OLTAGGHH.js → chunk-LCJZE42I.js} +1 -1
- package/dist/hooks/{chunk-NWD47MW3.js → chunk-NJZSO7BK.js} +3 -3
- package/dist/hooks/{chunk-SSX23SJ2.js → chunk-RKUAD3I6.js} +1 -0
- package/dist/hooks/{chunk-77RLKZ5V.js → chunk-ROULPSQC.js} +2 -2
- package/dist/hooks/{chunk-OYU6KPRA.js → chunk-SXPTRFPG.js} +2 -2
- package/dist/hooks/{chunk-FXAKJKTB.js → chunk-WPALEIRX.js} +1 -1
- package/dist/hooks/{chunk-O2FBZPSW.js → chunk-YO43HEPY.js} +23 -8
- package/dist/hooks/codex-hook-adapter.js +12 -12
- package/dist/hooks/duplicate-read-guard.js +7 -7
- package/dist/hooks/format-edited.js +3 -3
- package/dist/hooks/investigation-guard.js +7 -7
- package/dist/hooks/pretool-guard.js +11 -11
- package/dist/hooks/session-lang.js +2 -2
- package/dist/hooks/stop-guard.js +5 -5
- package/dist/josh.js +1 -8
- package/eslint/base.js +4 -1
- package/package.json +9 -6
- package/playwright.config.ts +9 -17
- package/ports/index.d.ts +1 -0
- package/ports/index.js +1 -0
- package/ports/web-server.d.ts +5 -0
- package/ports/web-server.js +73 -0
- package/scripts/agent/agent-role-profile.ts +11 -0
- package/scripts/gate/project-checks.ts +24 -0
- package/scripts/init/init-ai-copy.ts +8 -5
- package/scripts/init/init-logic-workspace.ts +38 -5
- package/scripts/init/init-logic.ts +1 -0
- package/scripts/init/init-static.ts +4 -1
- package/scripts/init/project-profile.ts +14 -5
- package/scripts/josh/josh-commands-development.ts +2 -15
- package/scripts/lint/format.ts +68 -0
- package/scripts/lint/lint-parallel.ts +4 -18
- package/scripts/run/run-step-cli.ts +11 -1
- package/scripts/run/run-step.ts +36 -8
- package/templates/pnpm-workspace.static.yaml +4 -0
|
@@ -213,7 +213,7 @@ single non-numeric line as the verdict.
|
|
|
213
213
|
`lane:await` watches local process presence and exits when any named child confirms-complete,
|
|
214
214
|
waking the parent at the actual completion rather than at the next heartbeat interval. **The
|
|
215
215
|
re-confirm delay and poll interval are the command's, not the agent's** — pass only the issue
|
|
216
|
-
numbers.
|
|
216
|
+
numbers. Without that wake (Codex), hand off instead — "A parent without a completion callback".
|
|
217
217
|
|
|
218
218
|
**A `lane:await` wake is a confirmed-gone process, so classify the ending at once — do not wait out
|
|
219
219
|
the silent-unit window** (joshuafolkken/kit#2277). `lane:await` exits only after the child's process
|
|
@@ -375,6 +375,11 @@ the check could not answer, and take `over`'s branch at that child.
|
|
|
375
375
|
only moment where **this** child's work is all written down: the PR is merged, the working tree is clean
|
|
376
376
|
on the default branch, and the epic's state on GitHub is complete.
|
|
377
377
|
|
|
378
|
+
### A parent without a completion callback hands off at its first dispatch
|
|
379
|
+
|
|
380
|
+
**A finished command never re-invokes a Codex parent, so after a dispatch `run:step` prints the `--cut`
|
|
381
|
+
below the cut cap, `wait` at it** (joshuafolkken/kit#2653): dispatch the wave, run it, end the turn.
|
|
382
|
+
|
|
378
383
|
### The lane child reuses this measurement mid-implementation
|
|
379
384
|
|
|
380
385
|
**The same `pnpm josh cost --over` measurement bounds a lane child's context _during_ implementation, not
|
|
@@ -534,20 +539,16 @@ to untangle**: `epic:next` detects it and exits with an error.
|
|
|
534
539
|
### The parent keeps no clock of its own — the watcher's exit is the wake
|
|
535
540
|
|
|
536
541
|
**After hand-off, the supervisor's driver owns the mechanical clock.** `backlog:drive` polls lane
|
|
537
|
-
completion and the backlog inside the detached process, without waking an AI parent
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
heartbeat lines, and `run:report` remains the final report source.
|
|
542
|
+
completion and the backlog inside the detached process, without waking an AI parent; the parent-turn
|
|
543
|
+
instructions below apply only to a returned judgment branch. `run:progress --wait` stays the heartbeat
|
|
544
|
+
source and `run:report` the final report.
|
|
541
545
|
|
|
542
|
-
**The numbers above are floors between asks, not a timer the parent sets
|
|
543
|
-
|
|
544
|
-
The watcher took the *reporting* out of the parent; the parent must not go on keeping the clock anyway,
|
|
545
|
-
or the two run side by side and the run pays for both.
|
|
546
|
+
**The numbers above are floors between asks, not a timer the parent sets** — one tick per turn, at the
|
|
547
|
+
largest context, is the cost `run:progress` removed.
|
|
546
548
|
|
|
547
549
|
The driver checks lane completion every five seconds and makes a new backlog offer no sooner than one
|
|
548
|
-
minute after the previous offer, except after collecting a child
|
|
549
|
-
|
|
550
|
-
exit as a prompt to act. The bounds above continue to apply to both processes.
|
|
550
|
+
minute after the previous offer, except after collecting a child — waits that cost no AI turns. The
|
|
551
|
+
watcher reports on its own interval, and a judgment session may take its exit as a prompt to act.
|
|
551
552
|
|
|
552
553
|
#### The wake exists only while something is in flight
|
|
553
554
|
|
|
@@ -535,7 +535,8 @@ ordinary way.
|
|
|
535
535
|
**So every cut is taken at a merge, which is what lets a resumed session state its own `--active`**: a
|
|
536
536
|
woken session picks the run up seconds after the merge the cut was taken at. The one shape that puts a
|
|
537
537
|
cut inside a watch — the backlog answering `exhausted` while this run's own children are still
|
|
538
|
-
merging — is the same, because the woken session has just merged a child.
|
|
538
|
+
merging — is the same, because the woken session has just merged a child. A Codex parent's cut is the one
|
|
539
|
+
taken at a dispatch instead (`backlogrun-progress.md` → "A parent without a completion callback").
|
|
539
540
|
|
|
540
541
|
**The 8-hour whole-run bound is untouched and still outranks all of this** — it is measured from the
|
|
541
542
|
record's `started_at` across every cut, so a run cannot watch its way past it in 30-minute pieces.
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Shared toolchain config and CLI for TypeScript projects — ESLint, Prettier, Ty
|
|
|
7
7
|
|
|
8
8
|
## Prerequisites
|
|
9
9
|
|
|
10
|
-
- [Node.js](https://nodejs.org/) with [pnpm](https://pnpm.io/)
|
|
10
|
+
- [Node.js](https://nodejs.org/) 22.19.0 or later with [pnpm](https://pnpm.io/) — [getting-started.md](./docs/getting-started.md) covers installing both
|
|
11
11
|
- [gh CLI](https://cli.github.com/) for `josh version` and existing GitHub Packages consumers. It is not required to install kit from public npm; see [authentication.md](./docs/authentication.md) for setup when needed.
|
|
12
12
|
|
|
13
13
|
## Quick start
|
|
@@ -24,6 +24,7 @@ Using the kit inside a project? See [docs/package.md](./docs/package.md).
|
|
|
24
24
|
| Guide | What it covers |
|
|
25
25
|
| ----------------------------------------------- | -------------------------------------------------------------------------------- |
|
|
26
26
|
| [why.md](./docs/why.md) | Why kit exists — the AI-development problems it solves, for practitioners |
|
|
27
|
+
| [getting-started.md](./docs/getting-started.md) | First install for an `index.html` site or a non-Node project, without Git |
|
|
27
28
|
| [authentication.md](./docs/authentication.md) | GitHub Packages auth for existing projects |
|
|
28
29
|
| [cli.md](./docs/cli.md) | Install and use the global `josh` CLI |
|
|
29
30
|
| [package.md](./docs/package.md) | Use the kit as a project devDependency — configs, prompts, scripts, `josh init` |
|
|
@@ -9,12 +9,12 @@ import {
|
|
|
9
9
|
load_environment_file,
|
|
10
10
|
notice_refusal_path,
|
|
11
11
|
refusal_path
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-ROULPSQC.js";
|
|
13
|
+
import "./chunk-7XQ6TK3R.js";
|
|
14
|
+
import "./chunk-SXPTRFPG.js";
|
|
15
|
+
import "./chunk-2PGRQ62K.js";
|
|
16
|
+
import "./chunk-WPALEIRX.js";
|
|
17
|
+
import "./chunk-RKUAD3I6.js";
|
|
18
18
|
export {
|
|
19
19
|
DISABLED_VALUES,
|
|
20
20
|
SWITCH_ENV_KEY,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ENV_FILE_NAME
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RKUAD3I6.js";
|
|
4
4
|
|
|
5
5
|
// scripts/lib/json-value.ts
|
|
6
6
|
function parse_or_undefined(text) {
|
|
@@ -733,14 +733,7 @@ var DEV_COMMANDS = {
|
|
|
733
733
|
reference: ["", "developer", ["none"]]
|
|
734
734
|
},
|
|
735
735
|
format: {
|
|
736
|
-
|
|
737
|
-
// whenever a non-autofixable error remains, so putting it first behind `&&` would mean one
|
|
738
|
-
// unused variable anywhere in the tree stops prettier from running at all.
|
|
739
|
-
shell: [
|
|
740
|
-
"sh",
|
|
741
|
-
"-c",
|
|
742
|
-
`pnpm exec prettier --write . && pnpm exec eslint . --fix ${ESLINT_CACHE_FLAGS.join(" ")}`
|
|
743
|
-
],
|
|
736
|
+
script: "scripts/lint/format.ts",
|
|
744
737
|
description: "Format code with prettier and eslint",
|
|
745
738
|
category: "Development",
|
|
746
739
|
reference: ["", "developer", ["files", "processes"]]
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
lane_child_marker
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SXPTRFPG.js";
|
|
4
4
|
import {
|
|
5
5
|
time_bundle_call,
|
|
6
6
|
time_format,
|
|
7
7
|
time_round_trips,
|
|
8
8
|
time_spans,
|
|
9
9
|
time_transcript_line
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-2PGRQ62K.js";
|
|
11
11
|
|
|
12
12
|
// scripts/lane/lane-guard-policy.ts
|
|
13
13
|
var DEFAULT_MODE = "refuse";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
investigation_reads
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-I3JP3D4A.js";
|
|
4
4
|
import {
|
|
5
5
|
lane_guard_policy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7XQ6TK3R.js";
|
|
7
7
|
import {
|
|
8
8
|
hook_decision
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-SXPTRFPG.js";
|
|
10
10
|
import {
|
|
11
11
|
json_value,
|
|
12
12
|
time_spans
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2PGRQ62K.js";
|
|
14
14
|
|
|
15
15
|
// scripts/delegation/duplicate-read-guard.ts
|
|
16
16
|
import { statSync } from "node:fs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
lane_child_marker,
|
|
3
3
|
run_issue_number
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-SXPTRFPG.js";
|
|
5
5
|
import {
|
|
6
6
|
PLATFORM_TEMP_ROOT,
|
|
7
7
|
cost_blocks,
|
|
@@ -11,13 +11,13 @@ import {
|
|
|
11
11
|
time_density_hook,
|
|
12
12
|
time_shell,
|
|
13
13
|
time_transcript_line
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-2PGRQ62K.js";
|
|
15
15
|
import {
|
|
16
16
|
ENV_FILE_NAME,
|
|
17
17
|
LANE_SEAT_KEY,
|
|
18
18
|
PORT_SEED_KEY,
|
|
19
19
|
ports
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-RKUAD3I6.js";
|
|
21
21
|
|
|
22
22
|
// scripts/rules/bash-triggers.ts
|
|
23
23
|
function on_bash_command(is_match) {
|
|
@@ -852,6 +852,10 @@ function detected_provider(environment) {
|
|
|
852
852
|
function resolve_provider(environment = process.env) {
|
|
853
853
|
return detected_provider(environment) ?? handed_provider(environment);
|
|
854
854
|
}
|
|
855
|
+
function has_completion_callback(environment = process.env) {
|
|
856
|
+
const selected = resolve_provider(environment);
|
|
857
|
+
return selected.kind !== "provider" || selected.provider !== OPENAI_PROVIDER;
|
|
858
|
+
}
|
|
855
859
|
function handoff_environment(environment = process.env) {
|
|
856
860
|
const selected = resolve_provider(environment);
|
|
857
861
|
return selected.kind === "provider" ? { [HANDED_PROVIDER_KEY]: selected.provider } : {};
|
|
@@ -916,6 +920,7 @@ var agent_role_profile = {
|
|
|
916
920
|
WORKER,
|
|
917
921
|
describe,
|
|
918
922
|
handoff_environment,
|
|
923
|
+
has_completion_callback,
|
|
919
924
|
is_safe_value,
|
|
920
925
|
parse,
|
|
921
926
|
phase_effort,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
time_batch_guard
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7XQ6TK3R.js";
|
|
4
4
|
import {
|
|
5
5
|
hook_decision
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SXPTRFPG.js";
|
|
7
7
|
import {
|
|
8
8
|
cost_blocks,
|
|
9
9
|
cost_transcript,
|
|
10
10
|
time_bundle_call,
|
|
11
11
|
time_shell,
|
|
12
12
|
time_spans
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-2PGRQ62K.js";
|
|
14
14
|
|
|
15
15
|
// scripts/delegation/investigation-reads.ts
|
|
16
16
|
import path from "node:path";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
investigation_reads
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-I3JP3D4A.js";
|
|
4
4
|
import {
|
|
5
5
|
lane_guard_policy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-7XQ6TK3R.js";
|
|
7
7
|
import {
|
|
8
8
|
hook_decision
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-SXPTRFPG.js";
|
|
10
10
|
|
|
11
11
|
// scripts/delegation/investigation-guard.ts
|
|
12
12
|
import { text } from "node:stream/consumers";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
lane_guard_policy,
|
|
3
3
|
time_batch_guard
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-7XQ6TK3R.js";
|
|
5
5
|
import {
|
|
6
6
|
hook_decision
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SXPTRFPG.js";
|
|
8
8
|
|
|
9
9
|
// scripts/hooks/batch-guard.ts
|
|
10
10
|
import { text } from "node:stream/consumers";
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
stamp_file,
|
|
4
4
|
time_density_hook,
|
|
5
5
|
time_hook_transcript
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-2PGRQ62K.js";
|
|
7
7
|
import {
|
|
8
8
|
josh_environment_file
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-WPALEIRX.js";
|
|
10
10
|
|
|
11
11
|
// scripts/josh/hook-decision.ts
|
|
12
12
|
import { z } from "zod";
|
|
@@ -33,31 +33,31 @@ import {
|
|
|
33
33
|
run_watcher_guard,
|
|
34
34
|
shell_segments,
|
|
35
35
|
tail_commands
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-GQ3EVWHY.js";
|
|
37
37
|
import {
|
|
38
38
|
find_local_bin_upwards
|
|
39
39
|
} from "./chunk-3V37IID6.js";
|
|
40
40
|
import {
|
|
41
41
|
batch_outcome
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-ROULPSQC.js";
|
|
43
43
|
import {
|
|
44
44
|
investigation_refusal
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-NJZSO7BK.js";
|
|
46
46
|
import {
|
|
47
47
|
duplicate_read_outcome
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-BNFG2IFK.js";
|
|
49
49
|
import {
|
|
50
50
|
investigation_reads
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-I3JP3D4A.js";
|
|
52
52
|
import {
|
|
53
53
|
lane_guard_policy,
|
|
54
54
|
time_batch_guard
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-7XQ6TK3R.js";
|
|
56
56
|
import {
|
|
57
57
|
hook_decision,
|
|
58
58
|
lane_child_marker,
|
|
59
59
|
run_issue_number
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-SXPTRFPG.js";
|
|
61
61
|
import {
|
|
62
62
|
PLATFORM_TEMP_ROOT,
|
|
63
63
|
cost_attribute,
|
|
@@ -69,7 +69,7 @@ import {
|
|
|
69
69
|
stamp_file,
|
|
70
70
|
time_density_hook,
|
|
71
71
|
time_shell
|
|
72
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-2PGRQ62K.js";
|
|
73
73
|
|
|
74
74
|
// scripts/hooks/pretool-guard.ts
|
|
75
75
|
import { text } from "node:stream/consumers";
|
|
@@ -2337,6 +2337,19 @@ function type_check_skip_reason(directory) {
|
|
|
2337
2337
|
if (!has_bin(directory, "tsc")) return "typescript is not installed";
|
|
2338
2338
|
return void 0;
|
|
2339
2339
|
}
|
|
2340
|
+
function prettier_skip_reason(directory) {
|
|
2341
|
+
if (!is_static(directory)) return void 0;
|
|
2342
|
+
if (!has_files(directory, WEB_FILES)) return "no HTML, CSS or JavaScript files were found";
|
|
2343
|
+
if (!has_bin(directory, "prettier")) return "prettier is not installed";
|
|
2344
|
+
return void 0;
|
|
2345
|
+
}
|
|
2346
|
+
function eslint_skip_reason(directory) {
|
|
2347
|
+
if (!is_static(directory)) return void 0;
|
|
2348
|
+
if (!has_files(directory, SCRIPT_FILES)) return "no JavaScript or TypeScript files were found";
|
|
2349
|
+
if (!has_config(directory, ESLINT_CONFIGS)) return "no ESLint configuration was found";
|
|
2350
|
+
if (!has_bin(directory, "eslint")) return "eslint is not installed";
|
|
2351
|
+
return void 0;
|
|
2352
|
+
}
|
|
2340
2353
|
var project_checks = {
|
|
2341
2354
|
CSPELL_CONFIGS,
|
|
2342
2355
|
ESLINT_CONFIGS,
|
|
@@ -2344,10 +2357,12 @@ var project_checks = {
|
|
|
2344
2357
|
TYPE_CONFIGS,
|
|
2345
2358
|
TYPE_FILES,
|
|
2346
2359
|
WEB_FILES,
|
|
2360
|
+
eslint_skip_reason,
|
|
2347
2361
|
has_bin,
|
|
2348
2362
|
has_config,
|
|
2349
2363
|
has_files,
|
|
2350
2364
|
is_static,
|
|
2365
|
+
prettier_skip_reason,
|
|
2351
2366
|
project_root,
|
|
2352
2367
|
skip_notice,
|
|
2353
2368
|
type_check_skip_reason
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
#!/usr/bin/env tsx
|
|
2
2
|
import {
|
|
3
3
|
pretool_guard
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-YO43HEPY.js";
|
|
5
|
+
import "./chunk-GQ3EVWHY.js";
|
|
6
6
|
import {
|
|
7
7
|
build_envelope,
|
|
8
8
|
compose_context,
|
|
9
9
|
format_edited_payload
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-LCJZE42I.js";
|
|
11
11
|
import "./chunk-3V37IID6.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-ROULPSQC.js";
|
|
13
|
+
import "./chunk-NJZSO7BK.js";
|
|
14
|
+
import "./chunk-BNFG2IFK.js";
|
|
15
|
+
import "./chunk-I3JP3D4A.js";
|
|
16
|
+
import "./chunk-7XQ6TK3R.js";
|
|
17
17
|
import {
|
|
18
18
|
hook_decision
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-SXPTRFPG.js";
|
|
20
20
|
import {
|
|
21
21
|
time_density_hook
|
|
22
|
-
} from "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
22
|
+
} from "./chunk-2PGRQ62K.js";
|
|
23
|
+
import "./chunk-WPALEIRX.js";
|
|
24
|
+
import "./chunk-RKUAD3I6.js";
|
|
25
25
|
|
|
26
26
|
// scripts/hooks/codex-hook-adapter.ts
|
|
27
27
|
import { text } from "node:stream/consumers";
|
|
@@ -9,13 +9,13 @@ import {
|
|
|
9
9
|
is_enabled,
|
|
10
10
|
notice_refusal_path,
|
|
11
11
|
refusal_path
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-BNFG2IFK.js";
|
|
13
|
+
import "./chunk-I3JP3D4A.js";
|
|
14
|
+
import "./chunk-7XQ6TK3R.js";
|
|
15
|
+
import "./chunk-SXPTRFPG.js";
|
|
16
|
+
import "./chunk-2PGRQ62K.js";
|
|
17
|
+
import "./chunk-WPALEIRX.js";
|
|
18
|
+
import "./chunk-RKUAD3I6.js";
|
|
19
19
|
export {
|
|
20
20
|
DISABLED_VALUES,
|
|
21
21
|
SWITCH_ENV_KEY,
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
relative_to_root,
|
|
16
16
|
resolve_invocations,
|
|
17
17
|
select_invocation
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LCJZE42I.js";
|
|
19
19
|
import "./chunk-3V37IID6.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-2PGRQ62K.js";
|
|
21
|
+
import "./chunk-RKUAD3I6.js";
|
|
22
22
|
export {
|
|
23
23
|
ESLINT_DAEMON,
|
|
24
24
|
MAX_DIAGNOSTIC_CHARS,
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
is_enabled,
|
|
11
11
|
load_environment_file,
|
|
12
12
|
refusal_path
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-NJZSO7BK.js";
|
|
14
|
+
import "./chunk-I3JP3D4A.js";
|
|
15
|
+
import "./chunk-7XQ6TK3R.js";
|
|
16
|
+
import "./chunk-SXPTRFPG.js";
|
|
17
|
+
import "./chunk-2PGRQ62K.js";
|
|
18
|
+
import "./chunk-WPALEIRX.js";
|
|
19
|
+
import "./chunk-RKUAD3I6.js";
|
|
20
20
|
export {
|
|
21
21
|
DISABLED_VALUES,
|
|
22
22
|
NOTICE,
|
|
@@ -3,18 +3,18 @@ import {
|
|
|
3
3
|
pretool_guard,
|
|
4
4
|
pretool_outcome,
|
|
5
5
|
pretool_outcome_async
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-YO43HEPY.js";
|
|
7
|
+
import "./chunk-GQ3EVWHY.js";
|
|
8
8
|
import "./chunk-3V37IID6.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-ROULPSQC.js";
|
|
10
|
+
import "./chunk-NJZSO7BK.js";
|
|
11
|
+
import "./chunk-BNFG2IFK.js";
|
|
12
|
+
import "./chunk-I3JP3D4A.js";
|
|
13
|
+
import "./chunk-7XQ6TK3R.js";
|
|
14
|
+
import "./chunk-SXPTRFPG.js";
|
|
15
|
+
import "./chunk-2PGRQ62K.js";
|
|
16
|
+
import "./chunk-WPALEIRX.js";
|
|
17
|
+
import "./chunk-RKUAD3I6.js";
|
|
18
18
|
export {
|
|
19
19
|
pretool_guard,
|
|
20
20
|
pretool_outcome,
|
|
@@ -4,8 +4,8 @@ import {
|
|
|
4
4
|
} from "./chunk-6V5OPIUU.js";
|
|
5
5
|
import {
|
|
6
6
|
josh_environment_file
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-WPALEIRX.js";
|
|
8
|
+
import "./chunk-RKUAD3I6.js";
|
|
9
9
|
|
|
10
10
|
// scripts/josh/session-language-cli.ts
|
|
11
11
|
import { fileURLToPath } from "node:url";
|
package/dist/hooks/stop-guard.js
CHANGED
|
@@ -15,22 +15,22 @@ import {
|
|
|
15
15
|
run_hold,
|
|
16
16
|
run_invocation,
|
|
17
17
|
run_watcher_guard
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-GQ3EVWHY.js";
|
|
19
19
|
import {
|
|
20
20
|
session_language
|
|
21
21
|
} from "./chunk-6V5OPIUU.js";
|
|
22
22
|
import {
|
|
23
23
|
hook_decision,
|
|
24
24
|
lane_child_marker
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-SXPTRFPG.js";
|
|
26
26
|
import {
|
|
27
27
|
PROJECT_ROOT,
|
|
28
28
|
stamp_file,
|
|
29
29
|
time_density_hook,
|
|
30
30
|
time_hook_transcript
|
|
31
|
-
} from "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
31
|
+
} from "./chunk-2PGRQ62K.js";
|
|
32
|
+
import "./chunk-WPALEIRX.js";
|
|
33
|
+
import "./chunk-RKUAD3I6.js";
|
|
34
34
|
|
|
35
35
|
// scripts/hooks/stop-guard.ts
|
|
36
36
|
import { text } from "node:stream/consumers";
|
package/dist/josh.js
CHANGED
|
@@ -890,14 +890,7 @@ var DEV_COMMANDS = {
|
|
|
890
890
|
reference: ["", "developer", ["none"]]
|
|
891
891
|
},
|
|
892
892
|
format: {
|
|
893
|
-
|
|
894
|
-
// whenever a non-autofixable error remains, so putting it first behind `&&` would mean one
|
|
895
|
-
// unused variable anywhere in the tree stops prettier from running at all.
|
|
896
|
-
shell: [
|
|
897
|
-
"sh",
|
|
898
|
-
"-c",
|
|
899
|
-
`pnpm exec prettier --write . && pnpm exec eslint . --fix ${ESLINT_CACHE_FLAGS.join(" ")}`
|
|
900
|
-
],
|
|
893
|
+
script: "scripts/lint/format.ts",
|
|
901
894
|
description: "Format code with prettier and eslint",
|
|
902
895
|
category: "Development",
|
|
903
896
|
reference: ["", "developer", ["files", "processes"]]
|
package/eslint/base.js
CHANGED
|
@@ -203,7 +203,10 @@ export function create_base_config({ gitignore_path, tsconfig_root_dir }) {
|
|
|
203
203
|
},
|
|
204
204
|
},
|
|
205
205
|
{
|
|
206
|
-
|
|
206
|
+
// `.mjs` / `.cjs` too (joshuafolkken/kit#2693): the typed parser options above reach only
|
|
207
|
+
// TypeScript files, so a hand-authored module in either extension crashed the whole run on
|
|
208
|
+
// the first type-aware rule instead of being linted as JavaScript.
|
|
209
|
+
files: ['**/*.{js,mjs,cjs}'],
|
|
207
210
|
...ts.configs.disableTypeChecked,
|
|
208
211
|
rules: {
|
|
209
212
|
...ts.configs.disableTypeChecked.rules,
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.929.0",
|
|
3
3
|
"name": "@joshuafolkken/kit",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
@@ -78,6 +78,10 @@
|
|
|
78
78
|
"types": "./ports/index.d.ts",
|
|
79
79
|
"default": "./ports/index.js"
|
|
80
80
|
},
|
|
81
|
+
"./web-server": {
|
|
82
|
+
"types": "./ports/web-server.d.ts",
|
|
83
|
+
"default": "./ports/web-server.js"
|
|
84
|
+
},
|
|
81
85
|
"./prettier": {
|
|
82
86
|
"types": "./prettier/index.d.ts",
|
|
83
87
|
"default": "./prettier/index.js"
|
|
@@ -109,9 +113,9 @@
|
|
|
109
113
|
}
|
|
110
114
|
},
|
|
111
115
|
"peerDependencies": {
|
|
112
|
-
"@playwright/test": ">=1.0.0",
|
|
113
116
|
"@eslint/compat": "^2.1.1",
|
|
114
117
|
"@eslint/js": "^10.0.1",
|
|
118
|
+
"@playwright/test": ">=1.0.0",
|
|
115
119
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
116
120
|
"eslint": "^10.0.0",
|
|
117
121
|
"eslint-config-prettier": "^10.1.8",
|
|
@@ -177,7 +181,7 @@
|
|
|
177
181
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
178
182
|
"@types/node": "^26.6.3",
|
|
179
183
|
"@types/semver": "^7.8.0",
|
|
180
|
-
"cspell": "^10.3.
|
|
184
|
+
"cspell": "^10.3.5",
|
|
181
185
|
"esbuild": "^0.28.2",
|
|
182
186
|
"eslint": "^10.11.0",
|
|
183
187
|
"eslint-config-prettier": "^10.1.8",
|
|
@@ -196,8 +200,8 @@
|
|
|
196
200
|
"rollup-plugin-dts": "^6.5.1",
|
|
197
201
|
"secretlint": "^13.0.6",
|
|
198
202
|
"typescript": "^6.0.3",
|
|
199
|
-
"
|
|
200
|
-
"
|
|
203
|
+
"typescript-eslint": "^8.70.1",
|
|
204
|
+
"vitest": "^5.0.2"
|
|
201
205
|
},
|
|
202
206
|
"dependencies": {
|
|
203
207
|
"execa": "^10.0.1",
|
|
@@ -217,7 +221,6 @@
|
|
|
217
221
|
}
|
|
218
222
|
},
|
|
219
223
|
"scripts": {
|
|
220
|
-
"preinstall": "pnpm dlx @aikidosec/safe-chain@1.5.20 setup-ci",
|
|
221
224
|
"build": "tsx scripts/build/build-bin.ts && tsx scripts/build/build-hooks.ts && tsx scripts/build/build-version.ts && tsx scripts/build/build-config-merge.ts && tsx scripts/build/build-managed-marker.ts && tsx scripts/build/build-self-sync-guard.ts && tsx scripts/build/build-claude-md.ts",
|
|
222
225
|
"josh": "tsx scripts/josh/josh.ts"
|
|
223
226
|
}
|