kiokuko-dsh 0.2.37 → 0.2.39

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 (129) hide show
  1. package/README.ja.md +28 -0
  2. package/README.ko.md +26 -0
  3. package/README.md +28 -0
  4. package/README.zh-CN.md +26 -0
  5. package/dist/client.cjs +97 -5
  6. package/dist/client.d.ts.map +1 -1
  7. package/dist/dsh/answer-review/contracts.js +1 -1
  8. package/dist/dsh/answer-review/contracts.js.map +1 -1
  9. package/dist/dsh/completion-report.d.ts +29 -1
  10. package/dist/dsh/completion-report.d.ts.map +1 -1
  11. package/dist/dsh/completion-report.js +58 -14
  12. package/dist/dsh/completion-report.js.map +1 -1
  13. package/dist/dsh/config.d.ts +12 -0
  14. package/dist/dsh/config.d.ts.map +1 -1
  15. package/dist/dsh/config.js +3 -0
  16. package/dist/dsh/config.js.map +1 -1
  17. package/dist/dsh/core/host.d.ts +12 -0
  18. package/dist/dsh/core/host.d.ts.map +1 -1
  19. package/dist/dsh/core/host.js +8 -4
  20. package/dist/dsh/core/host.js.map +1 -1
  21. package/dist/dsh/core/index.d.ts +32 -0
  22. package/dist/dsh/core/index.d.ts.map +1 -1
  23. package/dist/dsh/decisions/diagnostics.d.ts +4 -3
  24. package/dist/dsh/decisions/diagnostics.d.ts.map +1 -1
  25. package/dist/dsh/decisions/diagnostics.js +2 -2
  26. package/dist/dsh/decisions/diagnostics.js.map +1 -1
  27. package/dist/dsh/decisions/host.d.ts.map +1 -1
  28. package/dist/dsh/decisions/host.js +5 -0
  29. package/dist/dsh/decisions/host.js.map +1 -1
  30. package/dist/dsh/decisions/intent-assessment.d.ts +24 -3
  31. package/dist/dsh/decisions/intent-assessment.d.ts.map +1 -1
  32. package/dist/dsh/decisions/intent-assessment.js +36 -10
  33. package/dist/dsh/decisions/intent-assessment.js.map +1 -1
  34. package/dist/dsh/decisions/openai.d.ts.map +1 -1
  35. package/dist/dsh/decisions/openai.js +3 -0
  36. package/dist/dsh/decisions/openai.js.map +1 -1
  37. package/dist/dsh/decisions/service.d.ts +2 -0
  38. package/dist/dsh/decisions/service.d.ts.map +1 -1
  39. package/dist/dsh/decisions/service.js +9 -0
  40. package/dist/dsh/decisions/service.js.map +1 -1
  41. package/dist/dsh/guardrail/contracts.d.ts +1 -1
  42. package/dist/dsh/guardrail/contracts.d.ts.map +1 -1
  43. package/dist/dsh/guardrail/evidence.d.ts.map +1 -1
  44. package/dist/dsh/guardrail/evidence.js +4 -0
  45. package/dist/dsh/guardrail/evidence.js.map +1 -1
  46. package/dist/dsh/host-adapter.d.ts +2 -0
  47. package/dist/dsh/host-adapter.d.ts.map +1 -1
  48. package/dist/dsh/host-adapter.js +9 -5
  49. package/dist/dsh/host-adapter.js.map +1 -1
  50. package/dist/dsh/index.d.ts +10 -2
  51. package/dist/dsh/index.d.ts.map +1 -1
  52. package/dist/dsh/index.js +6 -3
  53. package/dist/dsh/index.js.map +1 -1
  54. package/dist/dsh/lisp/host-tool-dispatch.d.ts +2 -0
  55. package/dist/dsh/lisp/host-tool-dispatch.d.ts.map +1 -1
  56. package/dist/dsh/lisp/host-tool-dispatch.js +9 -1
  57. package/dist/dsh/lisp/host-tool-dispatch.js.map +1 -1
  58. package/dist/dsh/lisp/http.d.ts.map +1 -1
  59. package/dist/dsh/lisp/http.js +13 -1
  60. package/dist/dsh/lisp/http.js.map +1 -1
  61. package/dist/dsh/lisp/manager.d.ts +4 -0
  62. package/dist/dsh/lisp/manager.d.ts.map +1 -1
  63. package/dist/dsh/lisp/manager.js +35 -9
  64. package/dist/dsh/lisp/manager.js.map +1 -1
  65. package/dist/dsh/lisp/native-stop-receipt.d.ts +25 -0
  66. package/dist/dsh/lisp/native-stop-receipt.d.ts.map +1 -0
  67. package/dist/dsh/lisp/native-stop-receipt.js +22 -0
  68. package/dist/dsh/lisp/native-stop-receipt.js.map +1 -0
  69. package/dist/dsh/lisp/proposal-batch.d.ts.map +1 -1
  70. package/dist/dsh/lisp/proposal-batch.js +2 -1
  71. package/dist/dsh/lisp/proposal-batch.js.map +1 -1
  72. package/dist/dsh/lisp/sandbox.d.ts +1 -0
  73. package/dist/dsh/lisp/sandbox.d.ts.map +1 -1
  74. package/dist/dsh/lisp/sandbox.js +2 -2
  75. package/dist/dsh/lisp/sandbox.js.map +1 -1
  76. package/dist/dsh/lisp/status-text.d.ts +34 -0
  77. package/dist/dsh/lisp/status-text.d.ts.map +1 -0
  78. package/dist/dsh/lisp/status-text.js +65 -0
  79. package/dist/dsh/lisp/status-text.js.map +1 -0
  80. package/dist/dsh/lisp/surface.d.ts.map +1 -1
  81. package/dist/dsh/lisp/surface.js +44 -10
  82. package/dist/dsh/lisp/surface.js.map +1 -1
  83. package/dist/dsh/live-config.d.ts +49 -0
  84. package/dist/dsh/live-config.d.ts.map +1 -0
  85. package/dist/dsh/live-config.js +77 -0
  86. package/dist/dsh/live-config.js.map +1 -0
  87. package/dist/dsh/managed-file-deployment.d.ts +6 -0
  88. package/dist/dsh/managed-file-deployment.d.ts.map +1 -1
  89. package/dist/dsh/managed-file-deployment.js +17 -1
  90. package/dist/dsh/managed-file-deployment.js.map +1 -1
  91. package/dist/dsh/managed-operation-journal.d.ts +5 -1
  92. package/dist/dsh/managed-operation-journal.d.ts.map +1 -1
  93. package/dist/dsh/managed-operation-journal.js +17 -4
  94. package/dist/dsh/managed-operation-journal.js.map +1 -1
  95. package/dist/dsh/on-demand-intake.d.ts +21 -4
  96. package/dist/dsh/on-demand-intake.d.ts.map +1 -1
  97. package/dist/dsh/on-demand-intake.js +167 -55
  98. package/dist/dsh/on-demand-intake.js.map +1 -1
  99. package/dist/dsh/setup.d.ts.map +1 -1
  100. package/dist/dsh/setup.js +8 -2
  101. package/dist/dsh/setup.js.map +1 -1
  102. package/dist/dsh/startup-defaults-settings.d.ts +20 -0
  103. package/dist/dsh/startup-defaults-settings.d.ts.map +1 -0
  104. package/dist/dsh/startup-defaults-settings.js +27 -0
  105. package/dist/dsh/startup-defaults-settings.js.map +1 -0
  106. package/dist/dsh/startup-defaults.d.ts +41 -0
  107. package/dist/dsh/startup-defaults.d.ts.map +1 -0
  108. package/dist/dsh/startup-defaults.js +29 -0
  109. package/dist/dsh/startup-defaults.js.map +1 -0
  110. package/dist/dsh/task-startup.d.ts +7 -0
  111. package/dist/dsh/task-startup.d.ts.map +1 -1
  112. package/dist/dsh/task-startup.js +30 -9
  113. package/dist/dsh/task-startup.js.map +1 -1
  114. package/dist/enno-oduno/verifier.d.ts.map +1 -1
  115. package/dist/enno-oduno/verifier.js +5 -1
  116. package/dist/enno-oduno/verifier.js.map +1 -1
  117. package/dist/locale/en.json +1 -1
  118. package/dist/locale/ja.json +1 -1
  119. package/dist/locale/ko.json +1 -1
  120. package/dist/locale/zh-CN.json +1 -1
  121. package/docs/README.ja.md +1 -0
  122. package/docs/README.md +1 -0
  123. package/docs/answer-review.md +8 -0
  124. package/docs/lisp.md +45 -4
  125. package/docs/micro-judge.md +1 -1
  126. package/docs/on-demand-intake.md +2 -0
  127. package/docs/typed-decisions.md +13 -3
  128. package/lisp/supervisor.mjs +90 -9
  129. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-defaults.d.ts","sourceRoot":"","sources":["../../src/dsh/startup-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAmB,kBAAkB,EAAE,sBAAsB,EAAwC,MAAM,gCAAgC,CAAA;AAElJ,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAA;AAErD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;EAA+B,CAAA;AAC7D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,qBAAqB;;;;;;;;;;;kBAKvB,CAAA;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,2BAA2B,CAAA;AAChE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,IAAI,WAAW,CAAA;IACvB,IAAI,IAAI,WAAW,CAAA;CACpB;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAElF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAEjF"}
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ import { isDefaultOption, startupOptionLabel, stripRecommendedSuffix } from './startup-defaults-settings.js';
3
+ export { startupOptionLabel, stripRecommendedSuffix };
4
+ /**
5
+ * `ask` keeps the per-task startup card without a preset. `on`/`off` preselect
6
+ * that side of the card and become the answer when no question service exists.
7
+ * A default never grants execution authority: it only selects an offered answer.
8
+ */
9
+ export const StartupModeSchema = z.enum(['ask', 'on', 'off']);
10
+ export const StartupDefaultsConfig = z.object({
11
+ /** Default for typed decisions in the startup card. */
12
+ decision: StartupModeSchema.default('ask'),
13
+ /** Default for Lisp in the startup card. */
14
+ lisp: StartupModeSchema.default('ask'),
15
+ }).strict();
16
+ /** Profile-level service carrying the live defaults; absent on a plain parse. */
17
+ export const STARTUP_DEFAULTS_SERVICE = 'kiokukoStartupDefaults';
18
+ /** Whether the card option at this index expresses the configured default. */
19
+ export function isStartupDefault(defaults, index) {
20
+ return isDefaultOption(defaults.decision, defaults.lisp, index);
21
+ }
22
+ /**
23
+ * Answer used when no question service is available. `ask` preserves the
24
+ * caller's existing behaviour instead of inventing a preference.
25
+ */
26
+ export function applyStartupDefault(mode, fallback) {
27
+ return mode === 'ask' ? fallback : mode === 'on';
28
+ }
29
+ //# sourceMappingURL=startup-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-defaults.js","sourceRoot":"","sources":["../../src/dsh/startup-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAwC,MAAM,gCAAgC,CAAA;AAElJ,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAA;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AAG7D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,uDAAuD;IACvD,QAAQ,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;IAC1C,4CAA4C;IAC5C,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC;CACvC,CAAC,CAAC,MAAM,EAAE,CAAA;AAGX,iFAAiF;AACjF,MAAM,CAAC,MAAM,wBAAwB,GAAG,wBAAwB,CAAA;AAMhE,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,QAAyB,EAAE,KAAa;IACvE,OAAO,eAAe,CAAC,QAAQ,CAAC,QAA4B,EAAE,QAAQ,CAAC,IAAwB,EAAE,KAAK,CAAC,CAAA;AACzG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAiB,EAAE,QAAiB;IACtE,OAAO,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAA;AAClD,CAAC"}
@@ -2,6 +2,7 @@ import type { DshUserQuestions } from './intake-questions.js';
2
2
  import { type DecisionConfiguration } from './decisions/config.js';
3
3
  import type { DecisionService } from './decisions/service.js';
4
4
  import type { LispCodingInput, LispCodingService } from './lisp/coding-choice.js';
5
+ import { type StartupDefaults } from './startup-defaults.js';
5
6
  export type TaskStartupChoice = NonNullable<DecisionConfiguration['startup']>;
6
7
  export declare const TASK_STARTUP_OPTIONS: readonly ["decision ON / Lisp ON", "decision ON / Lisp OFF", "decision OFF / Lisp ON", "decision OFF / Lisp OFF", "取消・作業を保持"];
7
8
  export declare function parseTaskStartupAnswer(response: unknown, questionId: string): TaskStartupChoice | undefined;
@@ -15,9 +16,15 @@ export declare class TaskStartup {
15
16
  questions?: DshUserQuestions;
16
17
  root(agent: LispCodingInput['agent']): string;
17
18
  lisp(): LispCodingService | undefined;
19
+ /** Configured preselection for the card; absent marks no option. */
20
+ defaults?(): StartupDefaults;
18
21
  });
19
22
  prepare(input: LispCodingInput & {
20
23
  sessionId: string;
24
+ clarificationFrom?: {
25
+ turn: number;
26
+ task: string;
27
+ };
21
28
  }): Promise<void>;
22
29
  private choose;
23
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-startup.d.ts","sourceRoot":"","sources":["../../src/dsh/task-startup.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEjF,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAA;AAC7E,eAAO,MAAM,oBAAoB,+HAGvB,CAAA;AACV,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAW3G;AAKD,kHAAkH;AAClH,qBAAa,WAAW;IAGV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8F;IACrH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmE;gBAC3D,IAAI,EAAE;QACjC,SAAS,EAAE,eAAe,CAAC;QAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;QACxD,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;QAC7C,IAAI,IAAI,iBAAiB,GAAG,SAAS,CAAA;KACtC;IACD,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBxD,MAAM;CA0DrB"}
1
+ {"version":3,"file":"task-startup.d.ts","sourceRoot":"","sources":["../../src/dsh/task-startup.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAA4B,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAAqF,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE/I,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAA;AAC7E,eAAO,MAAM,oBAAoB,+HAGvB,CAAA;AAGV,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAc3G;AAKD,kHAAkH;AAClH,qBAAa,WAAW;IAGV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8F;IACrH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmE;gBAC3D,IAAI,EAAE;QACjC,SAAS,EAAE,eAAe,CAAC;QAAC,SAAS,CAAC,EAAE,gBAAgB,CAAA;QACxD,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,MAAM,CAAA;QAC7C,IAAI,IAAI,iBAAiB,GAAG,SAAS,CAAA;QACrC,oEAAoE;QACpE,QAAQ,CAAC,IAAI,eAAe,CAAA;KAC7B;IACD,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAgB5G,MAAM;CAyErB"}
@@ -5,10 +5,13 @@ import { codingContinuation } from './coding-workflow/intent.js';
5
5
  import { dshTurnRequestId } from './intake-profile-resolver.js';
6
6
  import { ExecutionSelectionPending } from './execution-pending.js';
7
7
  import { selectedDecisionSettings } from './decisions/config.js';
8
+ import { applyStartupDefault, isStartupDefault, startupOptionLabel, stripRecommendedSuffix } from './startup-defaults.js';
8
9
  export const TASK_STARTUP_OPTIONS = [
9
10
  'decision ON / Lisp ON', 'decision ON / Lisp OFF',
10
11
  'decision OFF / Lisp ON', 'decision OFF / Lisp OFF', '取消・作業を保持',
11
12
  ];
13
+ /** Index of the cancel option; each earlier index encodes one ON/OFF pair. */
14
+ const CANCEL_INDEX = 4;
12
15
  export function parseTaskStartupAnswer(response, questionId) {
13
16
  const answers = response?.answers;
14
17
  if (!Array.isArray(answers) || answers.length !== 1 || answers[0]?.id !== questionId)
@@ -19,9 +22,12 @@ export function parseTaskStartupAnswer(response, questionId) {
19
22
  return undefined;
20
23
  if (!a.selected.length && !a.custom?.trim())
21
24
  return { decision: false, lisp: false, cancelled: true };
22
- const text = a.custom?.trim() || a.selected[0];
23
- const index = /^[1-5]$/.test(text) ? Number(text) - 1 : TASK_STARTUP_OPTIONS.indexOf(text);
24
- return index < 0 ? undefined : index === 4 ? { decision: false, lisp: false, cancelled: true }
25
+ // The Web UI appends the preset marker for its recommendation; it is presentation only.
26
+ const text = stripRecommendedSuffix(a.custom?.trim() || a.selected[0]);
27
+ const index = /^[1-5]$/.test(text)
28
+ ? Number(text) - 1
29
+ : TASK_STARTUP_OPTIONS.indexOf(text);
30
+ return index < 0 ? undefined : index === CANCEL_INDEX ? { decision: false, lisp: false, cancelled: true }
25
31
  : { decision: index < 2, lisp: index % 2 === 0 };
26
32
  }
27
33
  function continuation(task) {
@@ -66,8 +72,14 @@ export class TaskStartup {
66
72
  let receipt = await decisions.readStartup(key);
67
73
  if (!receipt?.startup) {
68
74
  const configured = await decisions.startupConfiguration();
69
- const config = await decisions.readStartup(requestId) ?? configured;
70
- let choice = configured.startup;
75
+ // Only the intake's native-answer path supplies this exact original key.
76
+ // Reuse its immutable mode binding, not the latest unrelated session task.
77
+ const from = input.clarificationFrom;
78
+ const prior = from && Number.isSafeInteger(from.turn) && from.turn >= 1 && from.turn < input.turn
79
+ ? await decisions.readStartup(`${prefix}${String(from.turn).padStart(16, '0')}:${canonicalContentHash(from.task)}`)
80
+ : undefined;
81
+ const config = await decisions.readStartup(requestId) ?? prior ?? configured;
82
+ let choice = prior?.startup ?? configured.startup;
71
83
  if (!choice && continuation(input.task)) {
72
84
  const previous = this.last.get(prefix);
73
85
  const rows = previous && previous.id < before ? [previous] : await decisions.startupBefore(prefix, before);
@@ -79,11 +91,15 @@ export class TaskStartup {
79
91
  choice = { ...choice, lisp: manual.choice === 'yes' };
80
92
  }
81
93
  }
94
+ const defaults = this.host.defaults?.() ?? { decision: 'ask', lisp: 'ask' };
95
+ const options = TASK_STARTUP_OPTIONS.map((label, index) => ({
96
+ label: startupOptionLabel(label, index < CANCEL_INDEX && isStartupDefault(defaults, index)),
97
+ }));
82
98
  if (!choice && this.host.questions) {
83
99
  const response = await abortable(this.host.questions.ask({ agent: input.agent, signal: input.signal, questions: [{
84
100
  id: key, header: 'Kiokuko · 作業開始', question: 'この作業で decision と Lisp を使いますか?',
85
- detail: `選択はこの作業に適用します。decision: ${config.provider} / ${selectedDecisionSettings(config)?.model ?? '未設定'}。未認証時に他へ切り替えません。Lisp の通常の権限・承認・Stop は維持します。取消・Skip は作業を保持して中止します。`,
86
- options: TASK_STARTUP_OPTIONS.map(label => ({ label })),
101
+ detail: `既定の選択を付けただけです。この作業では自由に変更できます。decision: ${config.provider} / ${selectedDecisionSettings(config)?.model ?? '未設定'}。未認証時に他へ切り替えません。Lisp の通常の権限・承認・Stop は維持します。取消・Skip は作業を保持して中止します。`,
102
+ options,
87
103
  }] }), input.signal).catch(error => {
88
104
  if (error?.code === 'ASK_CANCELLED' && !input.signal.aborted)
89
105
  return { answers: [{ id: key, selected: [] }] };
@@ -94,9 +110,14 @@ export class TaskStartup {
94
110
  throw new ExecutionSelectionPending('Invalid decision/Lisp startup answer; no work started');
95
111
  }
96
112
  if (!choice) {
97
- // Headless preserves existing configuration, including an explicit manual Lisp preference.
113
+ // Headless cannot ask: the configured default decides, and an explicit
114
+ // manual Lisp preference still wins because it was a human command.
98
115
  // Module availability never implicitly turns Lisp on.
99
- choice = config.startup ?? { decision: config.mode !== 'off', lisp: await lisp?.manualSelected?.(input.agent) === true };
116
+ const manual = await lisp?.manualSelected?.(input.agent) === true;
117
+ choice = config.startup ?? {
118
+ decision: applyStartupDefault(defaults.decision, config.mode !== 'off'),
119
+ lisp: applyStartupDefault(defaults.lisp, manual),
120
+ };
100
121
  }
101
122
  current();
102
123
  receipt = await decisions.bindStartup(key, choice, input.signal, config);
@@ -1 +1 @@
1
- {"version":3,"file":"task-startup.js","sourceRoot":"","sources":["../../src/dsh/task-startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-startup.js","sourceRoot":"","sources":["../../src/dsh/task-startup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/enno-oduno/verifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAA4B,MAAM,oBAAoB,CAAC;AAMrE,OAAO,EAAE,sBAAsB,EAA8C,MAAM,uBAAuB,CAAC;AAE3G,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMlE,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;CACxD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE;gBAA5B,OAAO,GAAE,iBAAiB,EAAO;CAIvD;AAkFD,wBAAsB,WAAW,CAC/B,WAAW,EAAE,YAAY,EACzB,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,oBAAyB,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAsI5B;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,SAAS,YAAY,EAAE,EAClC,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,oBAAyB,GACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAe9B"}
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/enno-oduno/verifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAA4B,MAAM,oBAAoB,CAAC;AAMrE,OAAO,EAAE,sBAAsB,EAA8C,MAAM,uBAAuB,CAAC;AAE3G,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMlE,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;CACxD;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,EAAE;gBAA5B,OAAO,GAAE,iBAAiB,EAAO;CAIvD;AAkFD,wBAAsB,WAAW,CAC/B,WAAW,EAAE,YAAY,EACzB,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,oBAAyB,GACtC,OAAO,CAAC,iBAAiB,CAAC,CA0I5B;AAED,wBAAsB,YAAY,CAChC,SAAS,EAAE,SAAS,YAAY,EAAE,EAClC,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,oBAAyB,GACtC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAe9B"}
@@ -122,7 +122,7 @@ export async function runVerifier(rawVerifier, repositoryRoot, dependencies = {}
122
122
  const tails = { stdout: '', stderr: '' };
123
123
  const observeSkip = (lane, chunk) => {
124
124
  const value = tails[lane] + chunk.toString();
125
- if (/(?:# SKIP|\b[1-9]\d* (?:skipped|pending)\b|# (?:skipped|todo) [1-9])/iu.test(value))
125
+ if (/(?:# SKIP(?=\s)|\b[1-9]\d* (?:skipped|pending)\b|# (?:skipped|todo) [1-9])/iu.test(value))
126
126
  skipped = true;
127
127
  tails[lane] = value.slice(-256);
128
128
  };
@@ -220,6 +220,10 @@ export async function runVerifier(rawVerifier, repositoryRoot, dependencies = {}
220
220
  settle({ status: 'spawn_failed', exitCode: null, signal: null });
221
221
  });
222
222
  child.once('close', (code, signal) => {
223
+ // EOF completes a directive token; a chunk ending in '# SKIP' alone
224
+ // must not misclassify the next chunk's 'ped 0' summary.
225
+ observeSkip('stdout', '\n');
226
+ observeSkip('stderr', '\n');
223
227
  if (!timedOut)
224
228
  tryKill('SIGTERM');
225
229
  settle({
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/enno-oduno/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/enno-oduno/verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAA4B,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAc,MAAM,SAAS,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEhH,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC;AACnC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AASjC,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACxB;IAArB,YAAqB,UAA+B,EAAE;QACpD,KAAK,CAAC,6IAA6I,CAAC,CAAC;QADlI,YAAO,GAAP,OAAO,CAA0B;QAEpD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,SAAS,uBAAuB,CAC9B,cAAsB,EACtB,OAAO,GAAG,sBAAsB;IAEhC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,cAAkC,CAAC;IACvC,MAAM,OAAO,GAAmF,EAAE,CAAC;IACnG,IAAI,CAAC;QACH,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,MAAM,sBAAsB,GAAG,GAAS,EAAE;QACxC,IAAI,OAAO,IAAI,WAAW,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO;QACnE,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,cAAc;gBAAE,OAAO,GAAG,IAAI,CAAC;QACxE,CAAC;QAAC,MAAM,CAAC;YACP,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC;QACH,qEAAqE;QACrE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoD,CAAC;QAC1E,KAAK,MAAM,SAAS,IAAI,oBAAoB,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;YACvD,IAAI,MAAM,KAAK,cAAc,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAChI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,oBAAoB,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;YACxG,KAAK,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,CAAC,OAAc,EAAE,QAAe,EAAQ,EAAE;gBACzD,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO;uBAC3E,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACpE,qEAAqE;oBACrE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC/B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;wBACvB,IAAI,CAAC;4BACH,gEAAgE;4BAChE,4DAA4D;4BAC5D,IAAI,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,MAAM;gCAAE,OAAO,GAAG,IAAI,CAAC;wBAC9F,CAAC;wBAAC,MAAM,CAAC;4BACP,WAAW,GAAG,IAAI,CAAC;wBACrB,CAAC;oBACH,CAAC;;wBAAM,sBAAsB,EAAE,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC;YACF,SAAS,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,oBAAoB,EAAE,CAAC;IACnC,CAAC;IACD,OAAO;QACL,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrF,QAAQ,EAAE,GAAG,EAAE;YACb,sBAAsB,EAAE,CAAC;YACzB,IAAI,WAAW;gBAAE,MAAM,IAAI,oBAAoB,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAgC,EAAE,KAA8B;IACrF,IAAI,OAAO,CAAC,UAAU,IAAI,iBAAiB;QAAE,OAAO,OAAO,CAAC;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,SAAS,CAAC,IAAmC;IACpD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAyB,EACzB,cAAsB,EACtB,eAAqC,EAAE;IAEvC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;QACnE,CAAC,CAAC,QAAQ,CAAC,GAAG;QACd,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;IACtD,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;IACxD,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,aAAa,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,aAAa,GAA4B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,CAAC,IAAwB,EAAE,KAAsB,EAAQ,EAAE;QAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,8EAA8E,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,IAAI,CAAC;QAC/G,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC;IACF,IAAI,KAAoD,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACvC,0EAA0E;QAC1E,oEAAoE;QACpE,oEAAoE;QACpE,OAAO,WAAW,CAAC,iBAAiB,CAAC;QACrC,KAAK,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE;YAC5E,GAAG,EAAE,UAAU,CAAC,GAAG;YACnB,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;YACtC,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;YACjC,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnD,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;YACxF,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;YACjB,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAChD,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACjD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1D,aAAa,KAAK,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAChD,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,aAAa,GAAG,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7B,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,aAAa,GAAG,aAAa,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,CAA0F,CAAC,OAAO,EAAE,EAAE;QACxI,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,SAAqC,CAAC;QAC1C,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,KAA8F,EAAQ,EAAE;YACtH,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,SAAS,KAAK,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,MAAsB,EAAW,EAAE;YAClD,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;oBACjC,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,IAAI,OAAO,IAAI,kBAAkB;gBAAE,OAAO;YAC1C,kBAAkB,GAAG,IAAI,CAAC;YAC1B,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;gBAAE,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACxB,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACzC,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;QACH,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACzB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,IAAI,QAAQ,EAAE,CAAC;gBACb,2FAA2F;gBAC3F,SAAS,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACnC,oEAAoE;YACpE,yDAAyD;YACzD,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5B,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAClC,MAAM,CAAC;gBACL,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;gBAC/D,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;gBAChC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM;aAChD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO;QACL,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE;QACnD,GAAG,UAAU;QACb,OAAO;QACP,aAAa;QACb,GAAG,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;eAC7E,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QACxF,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7C,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC7C,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;QACnC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAkC,EAClC,cAAsB,EACtB,eAAqC,EAAE;IAEvC,MAAM,KAAK,GAAG,uBAAuB,CAAC,cAAc,EAAE,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1G,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,IAAI,oBAAoB,CAAC;QACzE,IAAI,QAAQ,GAAG,CAAC;YAAE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChF,MAAM,yBAAyB,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,oBAAoB;YAAE,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnF,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "meta": {
3
3
  "title": "kiokuko-dsh",
4
- "description": "Version 0.2.37 — Kiokuko plugin for DeepSeek Harness"
4
+ "description": "Version 0.2.39 — Kiokuko plugin for DeepSeek Harness"
5
5
  }
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "meta": {
3
3
  "title": "kiokuko-dsh",
4
- "description": "バージョン 0.2.37 — DeepSeek Harness 向け Kiokuko プラグイン"
4
+ "description": "バージョン 0.2.39 — DeepSeek Harness 向け Kiokuko プラグイン"
5
5
  }
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "meta": {
3
3
  "title": "kiokuko-dsh",
4
- "description": "버전 0.2.37 — DeepSeek Harness용 Kiokuko 플러그인"
4
+ "description": "버전 0.2.39 — DeepSeek Harness용 Kiokuko 플러그인"
5
5
  }
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "meta": {
3
3
  "title": "kiokuko-dsh",
4
- "description": "版本 0.2.37 — DeepSeek Harness 的 Kiokuko 插件"
4
+ "description": "版本 0.2.39 — DeepSeek Harness 的 Kiokuko 插件"
5
5
  }
6
6
  }
package/docs/README.ja.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  目的別に参照してください。
4
4
 
5
+ - [Lisp と判定の既定値](../README.ja.md#startup-defaults) — 作業開始カードの既定の回答と判定providerの設定。
5
6
  - [OpenAI Decisionsの設定](../README.ja.md#openai-decisions-setup) — APIキーの保存先・自動再読・優先順位・判定providerの切替。[詳細な設定(英語)](typed-decisions.md#openai-credentials)。
6
7
  - [導入ガイド](getting-started.ja.md) — DeepSeek Harness Pluginの導入と実行。
7
8
  - [基本概念](concepts.ja.md) — RAG、記憶のライフサイクル、Project/Ecosystem/Global、Akinator。
package/docs/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  Choose a guide by what you need to do:
4
4
 
5
+ - [Startup defaults for Lisp and decisions](../README.md#startup-defaults) — preselect the per-task card answer and set the decision provider.
5
6
  - [OpenAI Decisions setup](../README.md#openai-decisions-setup) — API key, credential file paths, automatic reload, precedence and provider switching; [detailed configuration](typed-decisions.md#openai-credentials).
6
7
  - [Getting started](getting-started.md) — install and run the DeepSeek Harness plugin.
7
8
  - [Concepts](concepts.md) — RAG, memory lifecycle, Project/Ecosystem/Global scopes, and Akinator.
@@ -18,6 +18,14 @@ answerReview:
18
18
 
19
19
  Layaの通常v1 workerは内部の入力切り詰めとモデルfingerprintを確認できません。結果は `unverified_v1` の見直し候補です。strict workerは全質問のpreflightが通ってから評価します。Jev/Nimbleでもスコアや受理は正しさの保証ではありません。分類器の出していない問題説明は生成せず、該当項目と回答・根拠のイベント参照だけを再検討の手掛かりとして渡します。
20
20
 
21
+ ## 実測・説明・未検証範囲の境界
22
+
23
+ 環境制約が失敗原因という説明や「別環境では通る見込み」は推定であり、観測された合格とは別です。型検査・buildの成功も、テスト合格や稼働中アプリへの反映の証明にはなりません。通常回答のverificationレビューにはこの区別を指示していますが、分類器への助言であり、自由文を機械的に修正・禁止する保証ではありません。根拠不足は引き続き棄権です。
24
+
25
+ Ennoの最終回答欠落時に生成するhost完了報告では、`completion-verification-v1` の射影が記録済みverifier・必須チェックとの一致・鮮度・終了状態・TAPの失敗/取消を評価します。失敗は `failed`、記録や必須チェックの不足・skip・陳腐化は `unverified` として残し、作業状態がcompletedでも合格へ置き換えません。モデル由来の作業説明や原因の推定は、未検証の説明欄に分け、検証結果の計算には使用しません。別環境と稼働中runtimeは記録されたチェックの範囲外として未検証です。
26
+
27
+ 後から実測した合格は、その新しい記録のチェックだけを更新します。過去の報告や未測定範囲を成功へ書き換えず、報告の生成自体もtask状態を変更しません。このhost報告は通常の非空なモデル最終回答を置換しません。自由文の全ケースやモデルの原因判断の正確さを保証する機能ではありません。
28
+
21
29
  ## 継続と終了
22
30
 
23
31
  `assistant/message` と正常な `turn/end` が揃った後、非同期workerが評価します。終了フックで推論を待ちません。評価中はrunの終了確定を保留します。失敗・タイムアウト・棄権では元の回答で終了します。
package/docs/lisp.md CHANGED
@@ -282,6 +282,45 @@ remain available when the AI loop is stopped:
282
282
  /kioku-lisp recover
283
283
  ```
284
284
 
285
+ The default `status` view shows counts and up to three unresolved Lisp operations
286
+ and three unresolved external operations, each with its exact `diagnostics` command.
287
+ Successful operation IDs stay in `/kioku-lisp status --json`; ordinary status does
288
+ not print the full history. Reading either view never starts or recovers a worker.
289
+
290
+ An owned file proposal rejected by the host before dispatch is `NOT_APPLIED`,
291
+ not an unknown mutation. The Lisp generation and its definitions remain usable;
292
+ the host's preparation and permission checks still apply to any later attempt.
293
+ An error after dispatch, even with identical text, remains `UNKNOWN`.
294
+
295
+ `RECONCILIATION_REQUIRED` means external effects still lack a verifiable receipt.
296
+ Inspect `/kioku-lisp diagnostics OPERATION_ID` and the original host evidence.
297
+ A SIGTERM or job settlement message alone is not proof that the process and its
298
+ resources stopped. No interrupted command is automatically retried.
299
+
300
+ Restarting Lisp cannot clear an unknown external operation, and neither can
301
+ `recover` or `abandon`. While one remains, every later effect is refused. After
302
+ inspecting the original receipt, end only the operations you have confirmed are
303
+ harmless; the recorded text is the human evidence, not an observed result:
304
+
305
+ ```text
306
+ /kioku-lisp abandon-managed OPERATION_ID
307
+ /kioku-lisp recover
308
+ ```
309
+
310
+ `abandon-managed` accepts only `unknown` operations, requires the inspection
311
+ evidence, and records no success or failure outcome. It never re-executes the
312
+ command and never reverts an effect, so operations whose effects you cannot
313
+ verify must stay open until you resolve them yourself. The Lisp control beside
314
+ the session input offers the same action for the listed operations, and a scope
315
+ containing an abandoned operation cannot later be used as protocol test evidence.
316
+
317
+ A host that supplies versioned Bash termination receipts can reconcile an exact
318
+ original native child as `cancelled-confirmed` after observing its managed range
319
+ empty. The plugin checks the child/root call, agent, session and exact dispatched
320
+ working directory. The Lisp timeout or cancellation stays an error, and prior
321
+ command effects remain. Older hosts, missing receipts and mismatched identities
322
+ remain unresolved; text, SIGTERM and job settlement cannot substitute for proof.
323
+
285
324
  In ordinary development conversations, `recover` starts a fresh worker after a
286
325
  timeout, output limit or Stop, including between turns. It needs no task setup;
287
326
  old turn permissions remain expired, and definitions/heap values are discarded.
@@ -430,9 +469,10 @@ The legacy lisp.approvalMode ask/auto configuration and profile commands remain
430
469
  Use kioku_read/write/edit/remove/exec/result for observed work. Host receipts distinguish actual process outcome, source-bound verification and saving status. Lisp/model passed fields are advisory. Saving can be retried without repeating development effects; after restart an interrupted process remains unknown. See [owned execution](owned-execution.md).
431
470
  <!-- /kiokuko:runtime -->
432
471
 
433
- Pinned DSH stores this setting in the native `kiokuko-lisp` namespace, keyed by
434
- the host-owned profile identity. Current DSH exposes `lisp.approvalMode` through
435
- the native `kiokuko-dsh` configuration form and saves its profile patch. This
472
+ Pinned DSH stores the approval setting in the native `kiokuko-lisp` namespace, keyed by
473
+ the host-owned profile identity. Current DSH exposes `lisp.approvalMode`, the
474
+ `startupDefaults` pair and `typedDecisions.provider` together through the native
475
+ `kiokuko-dsh` configuration form, and saves the profile patch. This
436
476
  compatibility difference does not change the controls or scope. No separate
437
477
  preference file or database migration is used.
438
478
 
@@ -530,6 +570,7 @@ Clean installation and platform status: [code intelligence setup](code-intellige
530
570
 
531
571
  ## Coding task choice and recovery
532
572
 
533
- For a new coding task, `coding_workflow` first defines and displays the Goal, implementation items and observable conditions. The host then asks whether to use Lisp. Configuration alone never implies yes; an explicit manual session ON is reused as the selected route. Closing the question leaves it pending and `coding_workflow next` reopens the same question. Explicit continuation after a host restart restores the task choice; a new task or material scope change asks again. A saved yes followed by startup failure remains a visible blocker; recover the runtime or explicitly change the task route with `/kioku-lisp disable`. No uses ordinary tools and still requires fresh item checks followed by a final user-entry Goal check. Lisp evaluation success alone is insufficient: bind `task_completion` and collect actual host process evidence. See [coding workflow](coding-workflow.md).
573
+ For a new coding task, `coding_workflow` first defines and displays the Goal, implementation items and observable conditions. The host then asks whether to use Lisp. Configuration alone never implies yes; an explicit manual session ON is reused as the selected route.
574
+ `startupDefaults.lisp` (default `ask`) only preselects the Lisp answer on the task-startup card, which stays editable; a saved answer still wins. The default never enables the module or satisfies a yes: a missing runtime or failed startup remains the same recoverable blocker. Closing the question leaves it pending and `coding_workflow next` reopens the same question. Explicit continuation after a host restart restores the task choice; a new task or material scope change asks again. A saved yes followed by startup failure remains a visible blocker; recover the runtime or explicitly change the task route with `/kioku-lisp disable`. No uses ordinary tools and still requires fresh item checks followed by a final user-entry Goal check. Lisp evaluation success alone is insufficient: bind `task_completion` and collect actual host process evidence. See [coding workflow](coding-workflow.md).
534
575
 
535
576
  Live opt-in condition/restart recovery: see [bounded recovery](lisp-recovery.md).
@@ -6,7 +6,7 @@ The experimental `crates/micro-judge` program propagates finite domains and uses
6
6
 
7
7
  The host builds a typed relation graph over exact message identities/digests, current task/Goal revisions, candidate proposal-set membership, proposal revisions/digests, legal current task operation membership and the independent semantic observation. Strings are interned to opaque integer identities. Boolean unknown has domain `[0,1]`; integer values cannot stand in for Boolean values. Intermediate variables link the relations, so the executable performs propagation and MRV search. These observations cannot grant execution. Existing native ownership, lease, revision, scope, permission, cancellation and admission checks remain required.
8
8
 
9
- A complete entailed relation graph can pass the advisory comparison. Contradiction, ambiguity or inconsistency asks a native clarification. A matching actual UI answer is validated against the same agent/session/question and unchanged context, becomes a fresh native user message/source identity, and is reinterpreted. Its exact text labels the latest explicit revision and its scope; unrelated constraints remain applicable. Wrong-question, replaced/stale context, cancellation and repeat replies cannot create new source authority. Ordinary explanatory answers and native evidence gathering bypass this execution assessment. It operates on resolved candidates; unknown optional intake metadata cannot become a new execution prerequisite. Explicit `typedDecisions.mode=off` retains the pre-existing native authority path and records `assessment_disabled`/`not_run`, with no solver verdict or new grant. An enabled assessment that is unavailable is never converted into that disabled state or a successful comparison. Unowned ordinary native tools keep the existing native-policy path; this assessment currently applies to prepared/owned request intent, not arbitrary shell effects or a new command parser.
9
+ A complete entailed relation graph can pass the advisory comparison. Semantic contradiction and source inconsistency remain blocking. An auxiliary abstention asks the user instead of silently accepting a main-model interpretation. A native affirmative answer to the exact current request can satisfy the confirmation requirement for new/same-scope work, without adopting proposals or changing lifecycle state. The private receipt is bound to the same agent/session, original source set, exact answer bytes, candidate classification and task/Goal/proposal revisions; it is not serialized into model-controllable tool arguments and is not restored after restart. The native finite checker still proves the current source identities and revisions. The assessment records `user_confirmed` (diagnostic reason `assessment_user_confirmed`), retaining `semantic: insufficient` and all original checks; it does not invent independent semantic support. OpenAI semantic refusals are unavailable, not recoverable abstentions. Host scope, ownership, admission and native permissions remain authoritative. A matching actual UI answer is validated against the same agent/session/question and unchanged context, becomes a fresh native user message/source identity, and is reinterpreted. Its exact text labels the latest explicit revision and its scope; unrelated constraints remain applicable. Wrong-question, replaced/stale context, cancellation and repeat replies cannot create new source authority. Ordinary explanatory answers and native evidence gathering bypass this execution assessment. It operates on resolved candidates; unknown optional intake metadata cannot become a new execution prerequisite. Explicit `typedDecisions.mode=off` retains the pre-existing native authority path and records `assessment_disabled`/`not_run`, with no solver verdict or new grant. An enabled assessment that is unavailable is never converted into that disabled state or a successful comparison. Unowned ordinary native tools keep the existing native-policy path; this assessment currently applies to prepared/owned request intent, not arbitrary shell effects or a new command parser.
10
10
 
11
11
  Unavailable provider/artifact, timeout, malformed or mismatched output and incomplete/resource-limited search produce `assessment_unavailable`; no successful comparison or execution grant is inferred. Infrastructure failure is reported, not presented as a semantic question that a human answer could repair. Semantic-match and detector events share the existing intake diagnostic lineage and record bounded input/output digests, executable hash, version, duration, completeness, verdict or finite unavailable reason. Raw request/answer text is not copied into diagnostics.
12
12
 
@@ -37,6 +37,8 @@ The host supplies bounded references to current human input, the active Goal and
37
37
  {"taskType":"research","requestIntent":{"relation":"new","action":"research","evidenceRefs":["<current-host-reference>"]}}
38
38
  ```
39
39
 
40
+ An auxiliary semantic abstention asks the user about the current target, operation and constraints; it is neither permission nor a contradiction. For a concrete new/same-scope request, the native question quotes the unchanged request and offers explicit confirmation or correction. Only the affirmative native selection binds a private, session-local receipt to the exact source, answer bytes, candidate and current task/Goal/proposal revisions. After the answer is recaptured, the same candidate can record `user_confirmed` while the provider remains `insufficient`; the finite source checks and all existing admission/native permissions still run. Empty answers, dismissal, foreign or edited answers, changed scope and restart cannot recreate that receipt. Model-written approval fields or quoted answers cannot create it. Corrections are queued as native user input for fresh interpretation, not mapped to automatic permission. Proposal adoption, scope expansion, lifecycle operations, unknown targets and contradictions cannot use this confirmation shortcut.
41
+
40
42
  The guidance separates mandatory `requiredReferences` (current message and active identity/revisions) from optional per-proposal `evidenceRef` values. Include only proposals the current request actually adopts or references; unrelated proposals are not implicit approvals. Unknown or stale references remain errors.
41
43
 
42
44
  An abstention on the optional `taskOperation` question preserves independently resolved relation/action/scope and records `task_operation_unresolved`; it does not start, resume or complete a task. The main model can resolve that diagnostic with the exact current references. Pending/terminal state, stale leases, scope changes and native permissions still use their existing checks. Uncertain proposal references and unknown action/target still require resolution. A change also requires an explicit implementation or document scope at Core, adapter and on-demand preparation boundaries, including when taskOperation is omitted, none, or uncertain; a legacy task-type hint cannot supply that scope. Core also preserves the prior task at the next-turn admission boundary while required change scope remains unresolved. Explanation or inspection accompanying an explicit edit is classified as change without dropping the other requested work or prohibitions. This prompt rule is not evidence of live model accuracy.
@@ -28,6 +28,11 @@ Laya accept Choice only and return `DECISION_UNSUPPORTED` before inference for
28
28
  other kinds. The separate Lisp `kioku.typesafe:evaluate` API retains its own
29
29
  wire contract.
30
30
 
31
+ The configured provider (`typedDecisions.provider`, default `typesafe`) is the default
32
+ for new requests whenever this project has no saved selection. `/kioku-decisions use`
33
+ still saves an explicit project selection, which the configured default never
34
+ overwrites; `use default` returns to it.
35
+
31
36
  Switch backends in DSH without a restart:
32
37
 
33
38
  ```text
@@ -136,11 +141,16 @@ is not evidence of a successful API call; use the command probe to verify access
136
141
  The normal startup card offers the four decision/Lisp ON/OFF combinations and Cancel
137
142
  in one question before model tool assembly. It uses the currently selected backend,
138
143
  shown in the card; selection does not prove authentication or successful inference.
144
+ `startupDefaults.decision` and `startupDefaults.lisp` (default `ask`) mark one of those
145
+ options as the preset; the native question UI preselects a label ending in
146
+ ` (Recommended)`, so the card still opens editable. A preset grants no authority.
139
147
  Immutable existing decision bindings also retain the task choice, without granting
140
148
  tool or file authority. The same request and explicit continuation reuse the choice;
141
- an unrelated new request asks again. Cancel/Skip starts no task. Headless operation
142
- keeps the configured decision mode and explicit manual Lisp preference; an explicit
143
- `typedDecisions.startup: { decision: true, lisp: true }` config selects both.
149
+ an unrelated new request asks again. Cancel/Skip starts no task. Headless operation with `ask` keeps the
150
+ configured decision mode and explicit manual Lisp preference; `on`/`off` supply that
151
+ answer instead. An explicit
152
+ `typedDecisions.startup: { decision: true, lisp: true }` config selects both and
153
+ outranks the startup defaults for binding.
144
154
  Runtime failures retain the choice and permit explicit recovery without a new question.
145
155
 
146
156
  Semantic-comparison diagnostics retain only the known criterion names
@@ -1,8 +1,9 @@
1
1
  // Trusted host helper, never evaluated inside Lisp. stdin is a parent-liveness
2
2
  // pipe. It stays outside the worker sandbox so arbitrary Lisp cannot disable it.
3
- import { spawn } from 'node:child_process'
4
- import { openSync, closeSync, writeSync } from 'node:fs'
3
+ import { spawn, execFileSync } from 'node:child_process'
4
+ import { openSync, closeSync, writeSync, readFileSync } from 'node:fs'
5
5
  import { claimRepository } from './repository-owner.mjs'
6
+ import { processIdentity, sameProcess } from './process-identity.mjs'
6
7
  const launch = JSON.parse(process.argv[2])
7
8
  let repositoryLease
8
9
  if (launch.repositoryRoot) {
@@ -13,8 +14,60 @@ if (launch.repositoryRoot) {
13
14
  }
14
15
  }
15
16
  let child, closing = false, terminationSent = false
17
+ let namespace, terminal, finishTimer, ownershipError = false
18
+ // Pending promises and SQLite leases do not keep Node alive after stdin EOF
19
+ // and monitor exit. Keep unconfirmed ownership visible to the host watchdog.
20
+ const namespaceLifetime = launch.namespaceInfo ? setInterval(() => {}, 60000) : undefined
21
+ const unconfirmed = message => {
22
+ if (!ownershipError) console.error(`LISP_STOP_UNCONFIRMED: ${message}`)
23
+ ownershipError = true
24
+ }
25
+ const reportRuntime = pid => {
26
+ if (!repositoryLease) return
27
+ try {
28
+ const identity = repositoryLease.recordRuntime(pid)
29
+ writeSync(4, JSON.stringify({ type: 'runtime', pid, identity })+'\n')
30
+ } catch {
31
+ try { writeSync(4, JSON.stringify({ type: 'error', code: 'REPOSITORY_LOCK_FAILED' })+'\n') } finally { stop() }
32
+ }
33
+ }
34
+ const parentPid = pid => process.platform === 'linux'
35
+ ? Number(readFileSync(`/proc/${pid}/stat`, 'utf8').replace(/^.*\) /, '').split(' ')[1])
36
+ : Number(execFileSync('/bin/ps', ['-p', String(pid), '-o', 'ppid='], { encoding: 'utf8', timeout: 1000, stdio: ['ignore', 'pipe', 'ignore'] }).trim())
37
+ const finish = () => {
38
+ if (!terminal) return
39
+ if (launch.namespaceInfo) {
40
+ if (!namespace) return // Missing ownership evidence never confirms Stop.
41
+ try {
42
+ if (sameProcess(namespace.pid, namespace.identity)) {
43
+ finishTimer ??= setTimeout(() => { finishTimer = undefined; finish() }, 10)
44
+ return
45
+ }
46
+ } catch { unconfirmed('cannot confirm sandbox child termination'); return }
47
+ }
48
+ clearTimeout(finishTimer)
49
+ clearInterval(namespaceLifetime)
50
+ repositoryLease?.close()
51
+ process.exit(terminal.signal ? 128 : terminal.code ?? 70)
52
+ }
16
53
  const kill = () => {
17
54
  if (!child?.pid || terminationSent) return
55
+ if (launch.namespaceInfo) {
56
+ // bwrap's monitor can fork before its namespace init installs PDEATHSIG.
57
+ // Keep the monitor alive until its private info pipe identifies that child.
58
+ if (!namespace) return
59
+ try {
60
+ if (sameProcess(namespace.pid, namespace.identity)) {
61
+ if (!namespace.identity || processIdentity(namespace.pid) !== namespace.identity) throw new Error('identity unavailable')
62
+ process.kill(namespace.pid, 'SIGKILL')
63
+ }
64
+ terminationSent = true
65
+ } catch (error) {
66
+ if (error.code === 'ESRCH') terminationSent = true
67
+ else unconfirmed('sandbox child termination was not authorized or its identity changed')
68
+ }
69
+ return
70
+ }
18
71
  try {
19
72
  if (launch.group && child?.pid) process.kill(-child.pid, 'SIGKILL')
20
73
  else child.kill('SIGKILL')
@@ -33,22 +86,50 @@ process.stdin.resume()
33
86
  const filter = launch.seccompPath ? openSync(launch.seccompPath, 'r') : undefined
34
87
  const stdio = ['ignore', 'inherit', 'inherit', launch.protocol ? 3 : 'ignore']
35
88
  if (filter !== undefined) stdio.push(filter)
89
+ if (launch.namespaceInfo) {
90
+ while (stdio.length < 5) stdio.push('ignore')
91
+ stdio.push('pipe')
92
+ }
36
93
  child = spawn(launch.command, launch.args, { cwd: launch.cwd, env: launch.env, stdio, detached: !!launch.group })
37
94
  if (filter !== undefined) closeSync(filter)
95
+ if (launch.namespaceInfo) {
96
+ let info = '', excessive = false
97
+ child.stdio[5].on('data', chunk => {
98
+ if (excessive) return
99
+ info += chunk.toString()
100
+ if (Buffer.byteLength(info) > 16384) { excessive = true; unconfirmed('invalid sandbox ownership report') }
101
+ })
102
+ child.stdio[5].once('error', () => unconfirmed('sandbox ownership channel failed'))
103
+ child.stdio[5].once('end', () => {
104
+ try {
105
+ if (excessive) return
106
+ const pid = JSON.parse(info)['child-pid']
107
+ if (!Number.isSafeInteger(pid) || pid < 1 || pid === child.pid || pid === process.pid) throw new Error('invalid pid')
108
+ const identity = processIdentity(pid)
109
+ // The channel is private to bwrap and closed before guest execution.
110
+ // Check kernel parentage while its monitor is alive, then retain the
111
+ // birth fingerprint so a later orphan or PID reuse cannot change scope.
112
+ if (sameProcess(pid, identity) && (!identity || parentPid(pid) !== child.pid)) throw new Error('not an owned child')
113
+ namespace = { pid, identity }
114
+ // A dead bwrap monitor cannot donate a still-live namespace runtime.
115
+ reportRuntime(pid)
116
+ if (closing) kill()
117
+ finish()
118
+ } catch { unconfirmed('invalid or unowned sandbox child report') }
119
+ })
120
+ }
38
121
  // Stream one JSON object: older readers still consume the complete terminal
39
122
  // object, while current readers observe the prefix only after actual spawn.
40
123
  child.once('spawn',()=>{
41
- if(launch.repositoryRoot){
42
- try{const identity=repositoryLease.recordRuntime(child.pid);writeSync(4,JSON.stringify({type:'runtime',pid:child.pid,identity})+'\n')}
43
- catch{try{writeSync(4,JSON.stringify({type:'error',code:'REPOSITORY_LOCK_FAILED'})+'\n')}finally{stop()}}
44
- }
124
+ if (!launch.namespaceInfo) reportRuntime(child.pid)
45
125
  if(launch.report){try{writeSync(4,'{"processStarted":true,')}catch{/* host already stopped */}}
46
126
  })
47
127
  child.once('error', error => { process.stderr.write(`LISP_LAUNCH_ERROR: ${error.message}\n`); process.exit(70) })
48
128
  child.once('exit', (code, signal) => {
49
129
  if(launch.report){try{writeSync(4,JSON.stringify({exitCode:code,signal}).slice(1)+'\n')}catch{/* host already stopped */}}
50
- if (launch.group) kill()
51
- repositoryLease?.close()
52
- process.exit(signal ? 128 : code ?? 70)
130
+ terminal = { code, signal }
131
+ if (launch.namespaceInfo) stop()
132
+ else if (launch.group) kill()
133
+ finish()
53
134
  })
54
135
  if (closing) kill()