instar 1.3.756 → 1.3.758

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 (45) hide show
  1. package/dist/core/PostUpdateMigrator.d.ts +1 -0
  2. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  3. package/dist/core/PostUpdateMigrator.js +182 -0
  4. package/dist/core/PostUpdateMigrator.js.map +1 -1
  5. package/dist/core/instarSettingsHooks.d.ts.map +1 -1
  6. package/dist/core/instarSettingsHooks.js +12 -0
  7. package/dist/core/instarSettingsHooks.js.map +1 -1
  8. package/dist/core/types.d.ts +16 -0
  9. package/dist/core/types.d.ts.map +1 -1
  10. package/dist/core/types.js.map +1 -1
  11. package/dist/index.d.ts +0 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/scheduler/AgentMdJobLoader.d.ts +4 -0
  16. package/dist/scheduler/AgentMdJobLoader.d.ts.map +1 -1
  17. package/dist/scheduler/AgentMdJobLoader.js +2 -0
  18. package/dist/scheduler/AgentMdJobLoader.js.map +1 -1
  19. package/dist/scheduler/InstallBuiltinJobs.d.ts.map +1 -1
  20. package/dist/scheduler/InstallBuiltinJobs.js +3 -0
  21. package/dist/scheduler/InstallBuiltinJobs.js.map +1 -1
  22. package/dist/scheduler/JobScheduler.d.ts.map +1 -1
  23. package/dist/scheduler/JobScheduler.js +17 -5
  24. package/dist/scheduler/JobScheduler.js.map +1 -1
  25. package/dist/scheduler/buildPerSlugManifest.d.ts +4 -0
  26. package/dist/scheduler/buildPerSlugManifest.d.ts.map +1 -1
  27. package/dist/scheduler/buildPerSlugManifest.js +2 -0
  28. package/dist/scheduler/buildPerSlugManifest.js.map +1 -1
  29. package/package.json +1 -1
  30. package/scripts/doorway-scan.mjs +785 -0
  31. package/scripts/model-registry-freshness.manifest.json +17 -2
  32. package/src/data/builtin-manifest.json +20 -20
  33. package/src/scaffold/templates/jobs/instar/doorway-scan.md +32 -0
  34. package/upgrades/1.3.757.md +29 -0
  35. package/upgrades/1.3.758.md +37 -0
  36. package/upgrades/side-effects/doorway-model-registry-inc2.md +96 -0
  37. package/upgrades/side-effects/keyword-lint-enforce.md +113 -0
  38. package/dist/core/AutonomySkill.d.ts +0 -98
  39. package/dist/core/AutonomySkill.d.ts.map +0 -1
  40. package/dist/core/AutonomySkill.js +0 -497
  41. package/dist/core/AutonomySkill.js.map +0 -1
  42. package/dist/core/TopicClassifier.d.ts +0 -54
  43. package/dist/core/TopicClassifier.d.ts.map +0 -1
  44. package/dist/core/TopicClassifier.js +0 -144
  45. package/dist/core/TopicClassifier.js.map +0 -1
@@ -1015,6 +1015,7 @@ export declare class PostUpdateMigrator {
1015
1015
  private getExternalCommunicationGuardHook;
1016
1016
  private getActionClaimFollowthroughHook;
1017
1017
  private getPrHandLeaseGuardHook;
1018
+ private getDoorwayScanGuardHook;
1018
1019
  private getExternalOperationGateHook;
1019
1020
  /**
1020
1021
  * Apply the HTTP 408 ambiguous-outcome migration to an existing reply script
@@ -1 +1 @@
1
- {"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostUpdateMigrator.d.ts","sourceRoot":"","sources":["../../src/core/PostUpdateMigrator.ts"],"names":[],"mappings":"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"}
@@ -3456,6 +3456,13 @@ export class PostUpdateMigrator {
3456
3456
  catch (err) {
3457
3457
  result.errors.push(`pr-hand-lease-guard.js: ${err instanceof Error ? err.message : String(err)}`);
3458
3458
  }
3459
+ try {
3460
+ fs.writeFileSync(path.join(instarHooksDir, 'doorway-scan-guard.js'), this.getDoorwayScanGuardHook(), { mode: 0o755 });
3461
+ result.upgraded.push('hooks/instar/doorway-scan-guard.js (doorway-scan command-allowlist guard, PreToolUse Bash, scope-fail-open/match-fail-closed)');
3462
+ }
3463
+ catch (err) {
3464
+ result.errors.push(`doorway-scan-guard.js: ${err instanceof Error ? err.message : String(err)}`);
3465
+ }
3459
3466
  // Codex enforcement-hook registration (migration parity): existing Codex
3460
3467
  // agents get the per-project .codex/hooks.json on update. installCodexHooks
3461
3468
  // otherwise runs only via init's refreshHooksAndSettings — so without this an
@@ -11701,6 +11708,181 @@ process.stdin.on('end', async () => {
11701
11708
 
11702
11709
  // Backstop: if stdin never ends, never hang the tool — allow after a bounded wait.
11703
11710
  setTimeout(() => process.exit(0), 8000);
11711
+ `;
11712
+ }
11713
+ getDoorwayScanGuardHook() {
11714
+ return `#!/usr/bin/env node
11715
+ // Doorway-scan command-allowlist guard — PreToolUse Bash hook
11716
+ // (spec: DOORWAY-MODEL-KNOWLEDGE-REGISTRY-SPEC.md §2.7).
11717
+ //
11718
+ // The doorway-scan job session has Bash but NO Edit/Write tool. Bash can still
11719
+ // write files a dozen ways (cp/dd/mv/heredoc/interpreters/git-checkout/patch/
11720
+ // curl -o). This guard is the REAL "never edits source / never self-authorizes
11721
+ // metered spend" enforcer: a strict command-shape ALLOWLIST with fully-specified,
11722
+ // fail-closed match semantics.
11723
+ //
11724
+ // TWO fail-modes at DIFFERENT stages:
11725
+ // (a) SCOPE resolution fails OPEN — if this is not provably the doorway-scan
11726
+ // session (env-first, zero disk I/O on the hot path), ALLOW immediately.
11727
+ // A guard bug can NEVER block Bash in an unrelated instar-dev/interactive
11728
+ // session (exactly like the sibling pr-hand-lease-guard.js).
11729
+ // (b) COMMAND matching fails CLOSED — once confirmed IN the doorway-scan
11730
+ // session, any command not provably ONE sanctioned simple invocation is
11731
+ // REFUSED (exit 2).
11732
+ //
11733
+ // The parse IS the security boundary: a genuine stateful lexer (NOT a regex/
11734
+ // byte-scan) tokenizes the command tracking quote state and recognizes any
11735
+ // operator / redirection / expansion / substitution / env-prefix as a REFUSE.
11736
+ // Only a single simple command of plain word tokens can match a sanctioned shape.
11737
+
11738
+ let data = '';
11739
+ process.stdin.on('data', (chunk) => (data += chunk));
11740
+ process.stdin.on('end', () => {
11741
+ // ── Region A: SCOPE resolution (fail OPEN) ──
11742
+ let command = '';
11743
+ try {
11744
+ const input = JSON.parse(data || '{}');
11745
+ if (input.tool_name !== 'Bash') return process.exit(0);
11746
+ command = (input.tool_input && input.tool_input.command) || '';
11747
+ if (typeof command !== 'string') return process.exit(0);
11748
+ // Env-first fast path: ZERO disk I/O. Only the scheduler-spawned doorway-scan
11749
+ // session carries INSTAR_JOB_SLUG=doorway-scan. Anything else → strict no-op.
11750
+ if (process.env.INSTAR_JOB_SLUG !== 'doorway-scan') return process.exit(0);
11751
+ // (Confirmed the doorway-scan session by the scheduler-set env marker.)
11752
+ } catch {
11753
+ return process.exit(0); // scope resolution error → fail OPEN (never block others)
11754
+ }
11755
+
11756
+ // ── Region B: COMMAND matching (fail CLOSED) ──
11757
+ try {
11758
+ const verdict = classifyDoorwayScanCommand(command);
11759
+ if (verdict.allow) return process.exit(0);
11760
+ process.stderr.write(
11761
+ 'doorway-scan-guard: refused — ' + verdict.reason + '. This session may run ONLY the ' +
11762
+ 'sanctioned prober invocation (node scripts/doorway-scan.mjs --scope free-probes), a ' +
11763
+ 'host-pinned localhost curl (no output-redirect flag), and read-only test -f / cat / jq -r. ' +
11764
+ 'It must never edit source or self-authorize a metered scope.\\n'
11765
+ );
11766
+ return process.exit(2); // block
11767
+ } catch {
11768
+ process.stderr.write('doorway-scan-guard: could not decompose the command — refusing (fail-closed).\\n');
11769
+ return process.exit(2); // undecomposable → REFUSE
11770
+ }
11771
+ });
11772
+
11773
+ // Backstop: never hang the tool if stdin never ends. This is the SCOPE-level
11774
+ // timeout, so it fails OPEN (a stuck guard must not block an unrelated session).
11775
+ setTimeout(() => process.exit(0), 8000);
11776
+
11777
+ /**
11778
+ * Tokenize a shell command with a genuine stateful lexer. Returns
11779
+ * { ok, tokens, reason }. ok:false when the command is NOT exactly one simple
11780
+ * command of plain word tokens (any operator / redirection / expansion /
11781
+ * substitution / newline / leading env-assignment → ok:false). tokens are the
11782
+ * unquoted argv of the single simple command when ok:true.
11783
+ */
11784
+ function lexSimpleCommand(cmd) {
11785
+ const tokens = [];
11786
+ let cur = '';
11787
+ let curHasChar = false; // distinguishes an empty quoted token '' from no token
11788
+ let i = 0;
11789
+ const n = cmd.length;
11790
+ const flush = () => { if (curHasChar) { tokens.push(cur); cur = ''; curHasChar = false; } };
11791
+ while (i < n) {
11792
+ const c = cmd[i];
11793
+ // Whitespace (token separator).
11794
+ if (c === ' ' || c === '\\t') { flush(); i++; continue; }
11795
+ // Newline / carriage return → a command list separator: REFUSE.
11796
+ if (c === '\\n' || c === '\\r') return { ok: false, reason: 'newline (command list)' };
11797
+ // Operators / redirections / control chars outside quotes → REFUSE.
11798
+ if (c === ';' || c === '|' || c === '&' || c === '<' || c === '>' || c === '(' || c === ')' || c === '{' || c === '}' || c === '\\n') {
11799
+ return { ok: false, reason: 'shell operator/redirection "' + c + '"' };
11800
+ }
11801
+ if (c === '\`') return { ok: false, reason: 'backtick command substitution' };
11802
+ // Expansion: $VAR, \${...}, $(...) all begin with $ → REFUSE (no expansions).
11803
+ if (c === '$') return { ok: false, reason: 'variable/command expansion "$"' };
11804
+ // Backslash escape (outside quotes) — take next char literally (benign).
11805
+ if (c === '\\\\') {
11806
+ if (i + 1 < n) { cur += cmd[i + 1]; curHasChar = true; i += 2; continue; }
11807
+ return { ok: false, reason: 'trailing backslash' };
11808
+ }
11809
+ // Single-quoted span: literal, no expansion inside.
11810
+ if (c === "'") {
11811
+ i++;
11812
+ while (i < n && cmd[i] !== "'") { cur += cmd[i]; curHasChar = true; i++; }
11813
+ if (i >= n) return { ok: false, reason: 'unterminated single quote' };
11814
+ curHasChar = true; // an empty '' is still a token
11815
+ i++; // skip closing quote
11816
+ continue;
11817
+ }
11818
+ // Double-quoted span: reject $ and backtick inside (expansion), else literal.
11819
+ if (c === '"') {
11820
+ i++;
11821
+ while (i < n && cmd[i] !== '"') {
11822
+ const d = cmd[i];
11823
+ if (d === '$') return { ok: false, reason: 'expansion inside double quotes' };
11824
+ if (d === '\`') return { ok: false, reason: 'backtick inside double quotes' };
11825
+ if (d === '\\\\' && i + 1 < n) { cur += cmd[i + 1]; curHasChar = true; i += 2; continue; }
11826
+ cur += d; curHasChar = true; i++;
11827
+ }
11828
+ if (i >= n) return { ok: false, reason: 'unterminated double quote' };
11829
+ curHasChar = true;
11830
+ i++;
11831
+ continue;
11832
+ }
11833
+ // Ordinary character.
11834
+ cur += c; curHasChar = true; i++;
11835
+ }
11836
+ flush();
11837
+ if (tokens.length === 0) return { ok: false, reason: 'empty command' };
11838
+ // Leading env-assignment prefix (NAME=value cmd ...) → REFUSE (the money-gate bypass).
11839
+ if (/^[A-Za-z_][A-Za-z0-9_]*=/.test(tokens[0])) return { ok: false, reason: 'leading env-var assignment prefix' };
11840
+ return { ok: true, tokens, reason: 'ok' };
11841
+ }
11842
+
11843
+ function isLocalhostHttpUrl(tok) {
11844
+ return /^https?:\\/\\/(localhost|127\\.0\\.0\\.1)(:\\d+)?(\\/|$)/.test(tok);
11845
+ }
11846
+
11847
+ /**
11848
+ * Classify a command against the exhaustive sanctioned shapes. Returns
11849
+ * { allow, reason }. Fails CLOSED: anything not provably sanctioned → allow:false.
11850
+ */
11851
+ function classifyDoorwayScanCommand(command) {
11852
+ const lex = lexSimpleCommand(command);
11853
+ if (!lex.ok) return { allow: false, reason: lex.reason };
11854
+ const t = lex.tokens;
11855
+ // 1) The prober invocation — exact executable + argv.
11856
+ if (t[0] === 'node' && t[1] === 'scripts/doorway-scan.mjs' && t[2] === '--scope' && t[3] === 'free-probes' && t.length === 4) {
11857
+ return { allow: true, reason: 'prober' };
11858
+ }
11859
+ // 2) test -f <literal path>
11860
+ if (t[0] === 'test' && t[1] === '-f' && t.length === 3) return { allow: true, reason: 'test-f' };
11861
+ // 3) cat <literal path>
11862
+ if (t[0] === 'cat' && t.length === 2) return { allow: true, reason: 'cat' };
11863
+ // 4) jq -r <literal filter> <literal file>
11864
+ if (t[0] === 'jq' && t[1] === '-r' && t.length === 4) return { allow: true, reason: 'jq' };
11865
+ // 5) curl — host-pinned localhost, read-only flags, NO output-redirect flag.
11866
+ if (t[0] === 'curl') {
11867
+ const OUTPUT_REDIRECT = new Set(['-o', '-O', '--output', '--remote-name', '--create-dirs']);
11868
+ const ALLOWED_FLAGS = new Set(['-s', '-f', '-S', '-sf', '-sS', '-fsS', '-sfS', '--silent', '--fail', '--show-error']);
11869
+ let urlCount = 0;
11870
+ for (let k = 1; k < t.length; k++) {
11871
+ const a = t[k];
11872
+ if (OUTPUT_REDIRECT.has(a)) return { allow: false, reason: 'curl output-redirect flag' };
11873
+ if (a.startsWith('-')) {
11874
+ if (!ALLOWED_FLAGS.has(a)) return { allow: false, reason: 'curl flag not allowlisted (' + a + ')' };
11875
+ continue;
11876
+ }
11877
+ // A non-flag arg must be a localhost URL.
11878
+ if (!isLocalhostHttpUrl(a)) return { allow: false, reason: 'curl url not host-pinned to localhost' };
11879
+ urlCount++;
11880
+ }
11881
+ if (urlCount === 1) return { allow: true, reason: 'localhost-curl' };
11882
+ return { allow: false, reason: 'curl must carry exactly one localhost url' };
11883
+ }
11884
+ return { allow: false, reason: 'not a sanctioned command shape (' + t[0] + ')' };
11885
+ }
11704
11886
  `;
11705
11887
  }
11706
11888
  getExternalOperationGateHook() {