@shield-agent/kya 0.1.40 → 0.1.42

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 (55) hide show
  1. package/.mcp.json +1 -1
  2. package/README.md +3 -3
  3. package/amp/settings.example.json +1 -1
  4. package/claude/claude_desktop_config.example.json +1 -1
  5. package/cline/cline_mcp_settings.example.json +1 -1
  6. package/copilot/mcp-config.example.json +1 -1
  7. package/dist/commands/receipt-serve.d.ts.map +1 -1
  8. package/dist/commands/receipt-serve.js +3 -1
  9. package/dist/commands/receipt-serve.js.map +1 -1
  10. package/dist/commands/stop.d.ts +2 -0
  11. package/dist/commands/stop.d.ts.map +1 -1
  12. package/dist/commands/stop.js +9 -1
  13. package/dist/commands/stop.js.map +1 -1
  14. package/dist/config.d.ts +1 -0
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +1 -1
  17. package/dist/config.js.map +1 -1
  18. package/dist/dash/render.d.ts +2 -1
  19. package/dist/dash/render.d.ts.map +1 -1
  20. package/dist/dash/render.js +9 -3
  21. package/dist/dash/render.js.map +1 -1
  22. package/dist/receipt/daemon.d.ts +17 -3
  23. package/dist/receipt/daemon.d.ts.map +1 -1
  24. package/dist/receipt/daemon.js +110 -13
  25. package/dist/receipt/daemon.js.map +1 -1
  26. package/dist/receipt/enrich.d.ts +1 -1
  27. package/dist/receipt/enrich.d.ts.map +1 -1
  28. package/dist/receipt/enrich.js +76 -76
  29. package/dist/receipt/enrich.js.map +1 -1
  30. package/dist/receipt/live-server.d.ts.map +1 -1
  31. package/dist/receipt/live-server.js +10 -2
  32. package/dist/receipt/live-server.js.map +1 -1
  33. package/dist/receipt/render-receipt.d.ts +3 -0
  34. package/dist/receipt/render-receipt.d.ts.map +1 -1
  35. package/dist/receipt/render-receipt.js +59 -23
  36. package/dist/receipt/render-receipt.js.map +1 -1
  37. package/dist/trail.d.ts +2 -0
  38. package/dist/trail.d.ts.map +1 -1
  39. package/dist/trail.js +73 -3
  40. package/dist/trail.js.map +1 -1
  41. package/droid/README.md +1 -1
  42. package/droid/mcp.example.json +1 -1
  43. package/gemini/settings.example.json +1 -1
  44. package/grok/README.md +1 -1
  45. package/kilo/kilo.example.json +1 -1
  46. package/kimi/mcp.example.json +1 -1
  47. package/kiro/mcp.example.json +1 -1
  48. package/manifest.json +1 -1
  49. package/mastracode/mcp.example.json +1 -1
  50. package/mcp.json +1 -1
  51. package/openai/codex.config.example.toml +1 -1
  52. package/opencode/opencode.example.json +1 -1
  53. package/package.json +1 -1
  54. package/qwen/settings.example.json +1 -1
  55. package/server.json +2 -2
package/.mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "shield-kya": {
4
4
  "command": "npx",
5
- "args": ["--no-install", "@shield-agent/kya@0.1.40", "serve-mcp", "--stdio"],
5
+ "args": ["--no-install", "@shield-agent/kya@0.1.42", "serve-mcp", "--stdio"],
6
6
  "env": {
7
7
  "KYA_BASE_URL": "https://shield-agent.com",
8
8
  "KYA_API_KEY": "${KYA_API_KEY}",
package/README.md CHANGED
@@ -129,7 +129,7 @@ MCP Registry entry: `server.json` plus package `mcpName` `io.github.The-Pixel-Bo
129
129
  "mcpServers": {
130
130
  "shield-kya": {
131
131
  "command": "npx",
132
- "args": ["--no-install", "@shield-agent/kya@0.1.40", "serve-mcp", "--stdio"],
132
+ "args": ["--no-install", "@shield-agent/kya@0.1.42", "serve-mcp", "--stdio"],
133
133
  "env": {
134
134
  "KYA_BASE_URL": "http://127.0.0.1:8090",
135
135
  "KYA_API_KEY": "${KYA_API_KEY}",
@@ -156,7 +156,7 @@ npx @shield-agent/kya reject --id <approval-id>
156
156
 
157
157
  ```bash
158
158
  # Prefer a preinstalled package (no registry auto-install):
159
- npx --no-install @shield-agent/kya@0.1.40 serve-mcp --stdio
159
+ npx --no-install @shield-agent/kya@0.1.42 serve-mcp --stdio
160
160
  # Or after npm i -g / local install:
161
161
  kya serve-mcp --stdio
162
162
  ```
@@ -167,7 +167,7 @@ Copy `claude/claude_desktop_config.example.json` into Claude Desktop MCP setting
167
167
 
168
168
  ## OpenAI (Codex / Responses)
169
169
 
170
- **Codex CLI / IDE:** copy `openai/codex.config.example.toml` into `~/.codex/config.toml`. Local stdio uses `npx --no-install @shield-agent/kya@0.1.40 serve-mcp --stdio`. Hosted Codex uses `url = "https://shield-agent.com/mcp"` with `bearer_token_env_var = "KYA_API_KEY"`.
170
+ **Codex CLI / IDE:** copy `openai/codex.config.example.toml` into `~/.codex/config.toml`. Local stdio uses `npx --no-install @shield-agent/kya@0.1.42 serve-mcp --stdio`. Hosted Codex uses `url = "https://shield-agent.com/mcp"` with `bearer_token_env_var = "KYA_API_KEY"`.
171
171
 
172
172
  **Responses API:** see `openai/responses-mcp.example.json` (`server_url` + `Authorization: Bearer <KYA_API_KEY>`).
173
173
 
@@ -2,7 +2,7 @@
2
2
  "amp.mcpServers": {
3
3
  "shield-kya": {
4
4
  "command": "npx",
5
- "args": ["--no-install", "@shield-agent/kya@0.1.40", "serve-mcp", "--stdio"],
5
+ "args": ["--no-install", "@shield-agent/kya@0.1.42", "serve-mcp", "--stdio"],
6
6
  "env": {
7
7
  "KYA_BASE_URL": "https://shield-agent.com",
8
8
  "KYA_API_KEY": "${KYA_API_KEY}",
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "shield-kya": {
4
4
  "command": "npx",
5
- "args": ["--no-install", "@shield-agent/kya@0.1.40", "serve-mcp", "--stdio"],
5
+ "args": ["--no-install", "@shield-agent/kya@0.1.42", "serve-mcp", "--stdio"],
6
6
  "env": {
7
7
  "KYA_BASE_URL": "https://shield-agent.com",
8
8
  "KYA_API_KEY": "${KYA_API_KEY}",
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "shield-kya": {
4
4
  "command": "npx",
5
- "args": ["--no-install", "@shield-agent/kya@0.1.40", "serve-mcp", "--stdio"],
5
+ "args": ["--no-install", "@shield-agent/kya@0.1.42", "serve-mcp", "--stdio"],
6
6
  "env": {
7
7
  "KYA_BASE_URL": "https://shield-agent.com",
8
8
  "KYA_API_KEY": "${KYA_API_KEY}",
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "shield-kya": {
4
4
  "command": "npx",
5
- "args": ["--no-install", "@shield-agent/kya@0.1.40", "serve-mcp", "--stdio"],
5
+ "args": ["--no-install", "@shield-agent/kya@0.1.42", "serve-mcp", "--stdio"],
6
6
  "env": {
7
7
  "KYA_BASE_URL": "https://shield-agent.com",
8
8
  "KYA_API_KEY": "${KYA_API_KEY}",
@@ -1 +1 @@
1
- {"version":3,"file":"receipt-serve.d.ts","sourceRoot":"","sources":["../../src/commands/receipt-serve.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CAkBf"}
1
+ {"version":3,"file":"receipt-serve.d.ts","sourceRoot":"","sources":["../../src/commands/receipt-serve.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CAoBf"}
@@ -17,7 +17,9 @@ export async function runReceiptServe(config, input) {
17
17
  await live.waitUntilClosed;
18
18
  }
19
19
  finally {
20
- clearDaemonState(config.cwd);
20
+ // Only remove the state file if it is still ours — a successor daemon
21
+ // spawned during our slow shutdown must not lose its state.
22
+ clearDaemonState(config.cwd, process.pid);
21
23
  }
22
24
  }
23
25
  //# sourceMappingURL=receipt-serve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"receipt-serve.js","sourceRoot":"","sources":["../../src/commands/receipt-serve.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAsB,EACtB,KAA2C;IAE3C,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC;QACxC,MAAM;QACN,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IACH,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;YAAS,CAAC;QACT,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"receipt-serve.js","sourceRoot":"","sources":["../../src/commands/receipt-serve.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAsB,EACtB,KAA2C;IAE3C,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC;QACxC,MAAM;QACN,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC;IACH,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;YAAS,CAAC;QACT,sEAAsE;QACtE,4DAA4D;QAC5D,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export interface StopResult {
2
2
  readonly stopped: boolean;
3
3
  readonly pid?: number;
4
+ /** State file pointed at a pid that is not our daemon; it was cleared. */
5
+ readonly stale?: boolean;
4
6
  }
5
7
  export declare function runStop(cwd: string): Promise<StopResult>;
6
8
  export declare function formatStopHuman(r: StopResult): string;
@@ -1 +1 @@
1
- {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAe9D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAIrD"}
1
+ {"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAMD,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB9D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAOrD"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * `kya stop` — stop the background live-receipt server started by `kya start`.
3
3
  */
4
- import { clearDaemonState, pidAlive, readDaemonState, } from "../receipt/daemon.js";
4
+ import { clearDaemonState, isReceiptDaemonProcess, pidAlive, readDaemonState, } from "../receipt/daemon.js";
5
5
  function sleep(ms) {
6
6
  return new Promise((resolve) => setTimeout(resolve, ms));
7
7
  }
@@ -9,6 +9,11 @@ export async function runStop(cwd) {
9
9
  const state = readDaemonState(cwd);
10
10
  if (!state)
11
11
  return { stopped: false };
12
+ if (pidAlive(state.pid) && !isReceiptDaemonProcess(state.pid)) {
13
+ // Planted or recycled pid — never signal a foreign process.
14
+ clearDaemonState(cwd);
15
+ return { stopped: false, stale: true, pid: state.pid };
16
+ }
12
17
  if (pidAlive(state.pid)) {
13
18
  try {
14
19
  process.kill(state.pid, "SIGTERM");
@@ -24,6 +29,9 @@ export async function runStop(cwd) {
24
29
  return { stopped: true, pid: state.pid };
25
30
  }
26
31
  export function formatStopHuman(r) {
32
+ if (r.stale) {
33
+ return `state file was stale (pid ${r.pid} is not the report server) — cleared it`;
34
+ }
27
35
  return r.stopped
28
36
  ? `stopped report server (pid ${r.pid})`
29
37
  : "no report server running";
@@ -1 +1 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAO9B,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QACD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;YAC1E,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAa;IAC3C,OAAO,CAAC,CAAC,OAAO;QACd,CAAC,CAAC,8BAA8B,CAAC,CAAC,GAAG,GAAG;QACxC,CAAC,CAAC,0BAA0B,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../src/commands/stop.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,EACR,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAS9B,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtC,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,4DAA4D;QAC5D,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QACD,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;YAC1E,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAa;IAC3C,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,6BAA6B,CAAC,CAAC,GAAG,yCAAyC,CAAC;IACrF,CAAC;IACD,OAAO,CAAC,CAAC,OAAO;QACd,CAAC,CAAC,8BAA8B,CAAC,CAAC,GAAG,GAAG;QACxC,CAAC,CAAC,0BAA0B,CAAC;AACjC,CAAC"}
package/dist/config.d.ts CHANGED
@@ -45,6 +45,7 @@ export declare function writeFileConfig(cwd: string, patch: KyaFileConfig): KyaF
45
45
  * Fail-closed: empty API key against network commands exits non-zero.
46
46
  */
47
47
  export declare function resolveConfig(options?: ResolveOptions): ResolvedConfig;
48
+ export declare function isLoopbackUrl(raw: string | undefined): boolean;
48
49
  /** Ensure parent dir exists for a path. */
49
50
  export declare function ensureParentDir(filePath: string): void;
50
51
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAC5D,2DAA2D;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,iGAAiG;IACjG,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,yDAAyD;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAKD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CASzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,CAahF;AAaD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,cAAc,CAwE1E;AAmBD,2CAA2C;AAC3C,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEtD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,SAAS,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAC5D,2DAA2D;IAC3D,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,iGAAiG;IACjG,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,yDAAyD;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAKD,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CASzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,CAahF;AAaD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,cAAmB,GAAG,cAAc,CAwE1E;AASD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQ9D;AAED,2CAA2C;AAC3C,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEtD"}
package/dist/config.js CHANGED
@@ -104,7 +104,7 @@ function str(v) {
104
104
  return undefined;
105
105
  }
106
106
  const LOOPBACK_HOSTS = new Set(["127.0.0.1", "::1", "localhost"]);
107
- function isLoopbackUrl(raw) {
107
+ export function isLoopbackUrl(raw) {
108
108
  if (!raw)
109
109
  return false;
110
110
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,8 @@ export interface StatusStrip {
6
6
  readonly plane: string;
7
7
  readonly pane: DashPane;
8
8
  }
9
- /** Strip C0 / ESC / OSC so plane-controlled strings cannot drive the TTY. */
9
+ /** Strip C0 / ESC / OSC / bidi / zero-width so plane-controlled strings
10
+ * cannot drive the TTY or spoof display order. */
10
11
  export declare function stripEscapes(text: string): string;
11
12
  export declare function hline(ch?: string): string;
12
13
  export declare function clip(text: string, width?: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/dash/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG9D,eAAO,MAAM,IAAI,KAAK,CAAC;AAEvB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,wBAAgB,KAAK,CAAC,EAAE,SAAM,GAAG,MAAM,CAEtC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAO,GAAG,MAAM,CAIvD;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAiBhG;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAGnE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAS5E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAOnD;AAED,wBAAgB,KAAK,CACnB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAqBR;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA0BlE;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,SAAS,MAAM,EAAE,GAC5B,SAAS,MAAM,EAAE,CAGnB"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/dash/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG9D,eAAO,MAAM,IAAI,KAAK,CAAC;AAEvB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAED;kDACkD;AAClD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wBAAgB,KAAK,CAAC,EAAE,SAAM,GAAG,MAAM,CAEtC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAO,GAAG,MAAM,CAIvD;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAiBhG;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAGnE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAS5E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,CAOnD;AAED,wBAAgB,KAAK,CACnB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAqBR;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA8BlE;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,SAAS,MAAM,EAAE,GAC5B,SAAS,MAAM,EAAE,CAGnB"}
@@ -1,10 +1,12 @@
1
1
  import { FREE_PANES, paneAllowed } from "./entitlement.js";
2
2
  export const COLS = 78;
3
- /** Strip C0 / ESC / OSC so plane-controlled strings cannot drive the TTY. */
3
+ /** Strip C0 / ESC / OSC / bidi / zero-width so plane-controlled strings
4
+ * cannot drive the TTY or spoof display order. */
4
5
  export function stripEscapes(text) {
5
6
  return text
6
7
  .replace(/\u001b(?:\][^\u0007]*(?:\u0007|\u001b\\)|[@-Z\\-_]|[\[\]()#][0-9;?]*[ -/]*[@-~])/g, "")
7
- .replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g, "");
8
+ .replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g, "")
9
+ .replace(/[\u200b-\u200f\u202a-\u202e\u2066-\u2069\ufeff]/g, "");
8
10
  }
9
11
  export function hline(ch = "─") {
10
12
  return ch.repeat(COLS);
@@ -83,11 +85,15 @@ export function assertNoSecrets(text, extra) {
83
85
  /AKIA[A-Z0-9]{12,}/,
84
86
  /eyJ[A-Za-z0-9_\-]{20,}\.[A-Za-z0-9_\-]{10,}\.[A-Za-z0-9_\-]{10,}/,
85
87
  /[?&#](?:access_token|api[_-]?key|token|secret|password|auth)=[^&\s#"']+/i,
88
+ /[a-zA-Z][a-zA-Z0-9+.-]*:\/\/[^/\s:@]+:[^/\s@]+@/,
89
+ /sk-proj-[A-Za-z0-9_\-]{20,}/,
86
90
  /Cookie:\s*\S+/i,
87
91
  /\bsession=[^\s;&"']{8,}/i,
88
92
  /-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/i,
89
93
  /-----END [A-Z0-9 ]*PRIVATE KEY-----/i,
90
- /\b(password|passwd|secret|token|api[_-]?key)\s*[:=]\s*(?!\[redacted\])[^\s#"']{4,}/i,
94
+ // Keyword assignments require a realistically long value — short benign
95
+ // mentions ("refreshed token: ab12cd34") must not DoS every render.
96
+ /\b(password|passwd|secret|token|api[_-]?key)\s*[:=]\s*(?!\[redacted\])[^\s#"']{16,}/i,
91
97
  /\bxox[baprs]-[A-Za-z0-9-]{10,}/i,
92
98
  ];
93
99
  for (const p of pats) {
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/dash/render.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE3D,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;AASvB,6EAA6E;AAC7E,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI;SACR,OAAO,CAAC,mFAAmF,EAAE,EAAE,CAAC;SAChG,OAAO,CAAC,iDAAiD,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAE,GAAG,GAAG;IAC5B,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAY,EAAE,KAAK,GAAG,IAAI;IAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAA0B,EAAE,IAAoC;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAC3E,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,KAAwB,EAAE,EAAE,CACxC,IAAI,CACF,KAAK;SACF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;IACJ,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAiB,EAAE,MAAgB;IACzD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAgB,EAAE,MAAgB;IAClE,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC9B,OAAO,IAAI,CACT,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;aAC3D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,iEAAiE,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAc;IACvC,OAAO;QACL,GAAG,IAAI,kCAAkC;QACzC,gFAAgF;QAChF,qEAAqE;QACrE,0CAA0C;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,KAAK,CACnB,MAAmB,EACnB,GAAgB,EAChB,IAAuB,EACvB,WAAoB;IAEpB,MAAM,IAAI,GAAG;QACX,KAAK,CAAC,GAAG,CAAC;QACV,IAAI,CACF,gBAAgB,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,IAAI,cAAc,MAAM,CAAC,KAAK,aAAa,MAAM,CAAC,IAAI,EAAE,CACxG;QACD,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC;QACzB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC;QACnC,KAAK,EAAE;KACR,CAAC;IACF,MAAM,OAAO,GACX,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;QAC/B,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAChG,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,IAAI,GAAG;QACX,KAAK,EAAE;QACP,IAAI,CACF,8FAA8F,CAC/F;KACF,CAAC;IACF,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAc;IAC1D,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,MAAM,IAAI,GAAG;QACX,qBAAqB;QACrB,kBAAkB;QAClB,+BAA+B;QAC/B,sBAAsB;QACtB,sBAAsB;QACtB,qBAAqB;QACrB,kBAAkB;QAClB,0BAA0B;QAC1B,oBAAoB;QACpB,uBAAuB;QACvB,mBAAmB;QACnB,kEAAkE;QAClE,0EAA0E;QAC1E,gBAAgB;QAChB,0BAA0B;QAC1B,wCAAwC;QACxC,sCAAsC;QACtC,qFAAqF;QACrF,iCAAiC;KAClC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAgB,EAChB,IAAc,EACd,IAA6B;IAE7B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,IAAI,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/dash/render.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,25 @@ export declare function daemonStatePath(cwd: string): string;
15
15
  export declare function daemonLogPath(cwd: string): string;
16
16
  export declare function readDaemonState(cwd: string): ReceiptDaemonState | undefined;
17
17
  export declare function writeDaemonState(cwd: string, state: ReceiptDaemonState): void;
18
- export declare function clearDaemonState(cwd: string): void;
18
+ /**
19
+ * Remove the state file. With expectedPid set (daemon shutdown), removal is
20
+ * skipped when the file was already replaced by a newer daemon (pid mismatch)
21
+ * — a dying daemon must not delete its successor's state. Read errors /
22
+ * missing / corrupt state still remove (we own the normal case).
23
+ */
24
+ export declare function clearDaemonState(cwd: string, expectedPid?: number): void;
19
25
  export declare function pidAlive(pid: number): boolean;
20
26
  /**
21
- * Reuse the running daemon when its pid is alive; otherwise spawn a fresh
22
- * detached one and wait for it to publish its state file.
27
+ * Verify a pid is really our receipt daemon before signaling it.
28
+ * On non-win32 inspect the process args; on win32 fall back to alive-only.
29
+ */
30
+ export declare function isReceiptDaemonProcess(pid: number): boolean;
31
+ /**
32
+ * Reuse the running daemon only when its pid is alive AND the stored loopback
33
+ * url answers the token handshake; otherwise spawn a fresh detached one and
34
+ * wait for it to publish its state file. A wedged daemon that IS ours is
35
+ * stopped first so failed handshakes cannot leak orphans; a foreign pid is
36
+ * never signaled.
23
37
  */
24
38
  export declare function ensureReceiptDaemon(config: ResolvedConfig, input: {
25
39
  days: number;
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/receipt/daemon.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAiB3E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAM7E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAS7C;AAWD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,GACnE,OAAO,CAAC,mBAAmB,CAAC,CAqC9B"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/receipt/daemon.ts"],"names":[],"mappings":"AAsBA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG7E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAiB3E;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAa7E;AAUD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAMxE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAS7C;AAcD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAY3D;AAoCD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;CAAE,GACnE,OAAO,CAAC,mBAAmB,CAAC,CA4C9B"}
@@ -6,11 +6,11 @@
6
6
  * command, which writes the state file once it is listening and removes it on
7
7
  * shutdown.
8
8
  */
9
- import { existsSync, mkdirSync, openSync, readFileSync, rmSync, writeFileSync, } from "node:fs";
10
- import { spawn } from "node:child_process";
9
+ import { closeSync, existsSync, fchmodSync, lstatSync, mkdirSync, openSync, readFileSync, rmSync, writeFileSync, } from "node:fs";
10
+ import { execFileSync, spawn } from "node:child_process";
11
11
  import { join } from "node:path";
12
12
  import { fileURLToPath } from "node:url";
13
- import { configDir } from "../config.js";
13
+ import { configDir, isLoopbackUrl } from "../config.js";
14
14
  import { KyaError } from "../errors.js";
15
15
  export function daemonStatePath(cwd) {
16
16
  return join(configDir(cwd), "receipt-server.json");
@@ -38,12 +38,40 @@ export function readDaemonState(cwd) {
38
38
  }
39
39
  export function writeDaemonState(cwd, state) {
40
40
  mkdirSync(configDir(cwd), { recursive: true });
41
- writeFileSync(daemonStatePath(cwd), `${JSON.stringify(state, null, 2)}\n`, {
42
- encoding: "utf8",
43
- mode: 0o600,
44
- });
41
+ const path = daemonStatePath(cwd);
42
+ // Never write through a planted symlink; force 0600 on pre-existing files
43
+ // (the mode argument only applies at creation).
44
+ removeIfSymlink(path);
45
+ const fd = openSync(path, "w", 0o600);
46
+ try {
47
+ fchmodSync(fd, 0o600);
48
+ writeFileSync(fd, `${JSON.stringify(state, null, 2)}\n`, "utf8");
49
+ }
50
+ finally {
51
+ closeSync(fd);
52
+ }
45
53
  }
46
- export function clearDaemonState(cwd) {
54
+ function removeIfSymlink(path) {
55
+ try {
56
+ if (lstatSync(path).isSymbolicLink())
57
+ rmSync(path, { force: true });
58
+ }
59
+ catch {
60
+ /* absent — nothing to remove */
61
+ }
62
+ }
63
+ /**
64
+ * Remove the state file. With expectedPid set (daemon shutdown), removal is
65
+ * skipped when the file was already replaced by a newer daemon (pid mismatch)
66
+ * — a dying daemon must not delete its successor's state. Read errors /
67
+ * missing / corrupt state still remove (we own the normal case).
68
+ */
69
+ export function clearDaemonState(cwd, expectedPid) {
70
+ if (expectedPid !== undefined) {
71
+ const state = readDaemonState(cwd);
72
+ if (state && state.pid !== expectedPid)
73
+ return;
74
+ }
47
75
  rmSync(daemonStatePath(cwd), { force: true });
48
76
  }
49
77
  export function pidAlive(pid) {
@@ -63,20 +91,89 @@ function sleep(ms) {
63
91
  }
64
92
  function cliJsPath() {
65
93
  // dist/receipt/daemon.js → dist/cli.js
66
- return fileURLToPath(new URL("../cli.js", import.meta.url));
94
+ const built = fileURLToPath(new URL("../cli.js", import.meta.url));
95
+ if (existsSync(built))
96
+ return built;
97
+ // Running from src/ (vitest) — spawn the built CLI.
98
+ return fileURLToPath(new URL("../../dist/cli.js", import.meta.url));
67
99
  }
68
100
  /**
69
- * Reuse the running daemon when its pid is alive; otherwise spawn a fresh
70
- * detached one and wait for it to publish its state file.
101
+ * Verify a pid is really our receipt daemon before signaling it.
102
+ * On non-win32 inspect the process args; on win32 fall back to alive-only.
103
+ */
104
+ export function isReceiptDaemonProcess(pid) {
105
+ if (!pidAlive(pid))
106
+ return false;
107
+ if (process.platform === "win32")
108
+ return true;
109
+ try {
110
+ const args = execFileSync("ps", ["-p", String(pid), "-o", "args="], {
111
+ encoding: "utf8",
112
+ stdio: ["ignore", "pipe", "ignore"],
113
+ });
114
+ return args.includes("receipt-serve") && args.includes(cliJsPath());
115
+ }
116
+ catch {
117
+ return false;
118
+ }
119
+ }
120
+ /**
121
+ * A stored state file is only trustworthy if its url is loopback and the
122
+ * server behind it answers a token-authenticated handshake with 200.
123
+ * Uses /healthz: O(1) and decoupled from render failures of the full page.
124
+ */
125
+ async function verifyStoredDaemon(state) {
126
+ if (!isLoopbackUrl(state.url))
127
+ return false;
128
+ try {
129
+ const target = new URL("/healthz", new URL(state.url));
130
+ const res = await fetch(target, {
131
+ headers: { authorization: `Bearer ${state.token}` },
132
+ redirect: "error",
133
+ signal: AbortSignal.timeout(1500),
134
+ });
135
+ res.body?.cancel().catch(() => undefined);
136
+ return res.status === 200;
137
+ }
138
+ catch {
139
+ return false;
140
+ }
141
+ }
142
+ /** SIGTERM our own wedged daemon and wait for it to exit (past the live
143
+ * server's 2s force-close, so its shutdown runs before we respawn). */
144
+ async function stopOwnedDaemon(pid) {
145
+ try {
146
+ process.kill(pid, "SIGTERM");
147
+ }
148
+ catch {
149
+ return;
150
+ }
151
+ for (let waited = 0; waited < 2_500 && pidAlive(pid); waited += 100) {
152
+ await sleep(100);
153
+ }
154
+ }
155
+ /**
156
+ * Reuse the running daemon only when its pid is alive AND the stored loopback
157
+ * url answers the token handshake; otherwise spawn a fresh detached one and
158
+ * wait for it to publish its state file. A wedged daemon that IS ours is
159
+ * stopped first so failed handshakes cannot leak orphans; a foreign pid is
160
+ * never signaled.
71
161
  */
72
162
  export async function ensureReceiptDaemon(config, input) {
73
163
  const existing = readDaemonState(config.cwd);
74
164
  if (existing && pidAlive(existing.pid)) {
75
- return { url: existing.url, pid: existing.pid, reused: true };
165
+ if (await verifyStoredDaemon(existing)) {
166
+ return { url: existing.url, pid: existing.pid, reused: true };
167
+ }
168
+ if (isReceiptDaemonProcess(existing.pid)) {
169
+ await stopOwnedDaemon(existing.pid);
170
+ }
76
171
  }
77
172
  clearDaemonState(config.cwd);
78
173
  mkdirSync(configDir(config.cwd), { recursive: true });
79
- const logFd = openSync(daemonLogPath(config.cwd), "a");
174
+ const logPath = daemonLogPath(config.cwd);
175
+ removeIfSymlink(logPath);
176
+ const logFd = openSync(logPath, "a");
80
177
  const args = [cliJsPath(), "receipt-serve", "--days", String(input.days)];
81
178
  if (input.sessionId)
82
179
  args.push("--session", input.sessionId);
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/receipt/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/receipt/daemon.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { OrrDisposition, OrrRating } from "../commands/orr.js";
2
- import { type KyaFileConfig } from "../config.js";
2
+ import type { KyaFileConfig } from "../config.js";
3
3
  import { type HostReload } from "../host-reload.js";
4
4
  import type { SandboxRecord } from "../sandbox/types.js";
5
5
  import { type ShowbackReport } from "../showback/cost-per-task.js";
@@ -1 +1 @@
1
- {"version":3,"file":"enrich.d.ts","sourceRoot":"","sources":["../../src/receipt/enrich.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAa,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AA+BtC;oFACoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAcnE;AAED,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;CAC9C;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,WAAW,CASb;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACzC;AASD,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAmD5D;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAYxE;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAiBD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,MAAkB,EACxB,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC1B,YAAY,EAAE,CAuChB"}
1
+ {"version":3,"file":"enrich.d.ts","sourceRoot":"","sources":["../../src/receipt/enrich.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAa,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AAoDtC;oFACoF;AACpF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAYnE;AAED,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;CAC9C;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,WAAW,CAKb;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;CACzC;AASD,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAgD5D;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAUxE;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAqBD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,MAAkB,EACxB,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAC1B,YAAY,EAAE,CAuChB"}