@openrig/cli 0.6.8 → 0.6.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +41 -2
- package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +12 -4
- package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +218 -7
- package/daemon/context-packs/help/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
- package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +17 -7
- package/daemon/context-packs/reference/manifest.yaml +1 -1
- package/daemon/context-packs/reference/whats-new.md +69 -74
- package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
- package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
- package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
- package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +1 -0
- package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +12 -4
- package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
- package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
- package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
- package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
- package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
- package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
- package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
- package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
- package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
- package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +218 -7
- package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
- package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
- package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
- package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
- package/daemon/context-packs/world-example/manifest.yaml +1 -1
- package/daemon/context-packs/world-public/manifest.yaml +1 -1
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/all-migrations.d.ts.map +1 -1
- package/daemon/dist/db/all-migrations.js +2 -0
- package/daemon/dist/db/all-migrations.js.map +1 -1
- package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.d.ts +3 -0
- package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.d.ts.map +1 -0
- package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.js +12 -0
- package/daemon/dist/db/migrations/098_queue_transitions_qitem_id_order.js.map +1 -0
- package/daemon/dist/domain/current-work.d.ts +74 -0
- package/daemon/dist/domain/current-work.d.ts.map +1 -1
- package/daemon/dist/domain/current-work.js +165 -0
- package/daemon/dist/domain/current-work.js.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.d.ts +2 -0
- package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/connections-projection.js +3 -1
- package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +3 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.js +3 -1
- package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
- package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js +5 -1
- package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js +74 -19
- package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +37 -0
- package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/socket-inbound.js +281 -38
- package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.d.ts +14 -1
- package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
- package/daemon/dist/domain/gateway/slack/state-store.js +16 -0
- package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
- package/daemon/dist/domain/human-questions.d.ts +12 -3
- package/daemon/dist/domain/human-questions.d.ts.map +1 -1
- package/daemon/dist/domain/human-questions.js +10 -5
- package/daemon/dist/domain/human-questions.js.map +1 -1
- package/daemon/dist/domain/kernel-boot-tracker.d.ts +20 -1
- package/daemon/dist/domain/kernel-boot-tracker.d.ts.map +1 -1
- package/daemon/dist/domain/kernel-boot-tracker.js +66 -14
- package/daemon/dist/domain/kernel-boot-tracker.js.map +1 -1
- package/daemon/dist/domain/kernel-boot.d.ts +4 -0
- package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
- package/daemon/dist/domain/kernel-boot.js +26 -1
- package/daemon/dist/domain/kernel-boot.js.map +1 -1
- package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
- package/daemon/dist/domain/native-process-lineage.js +30 -7
- package/daemon/dist/domain/native-process-lineage.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +12 -0
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +47 -1
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/queue-transition-log.d.ts +12 -4
- package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
- package/daemon/dist/domain/queue-transition-log.js +24 -0
- package/daemon/dist/domain/queue-transition-log.js.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.d.ts +21 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.js +48 -4
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/daemon/dist/routes/gateway.d.ts.map +1 -1
- package/daemon/dist/routes/gateway.js +2 -0
- package/daemon/dist/routes/gateway.js.map +1 -1
- package/daemon/dist/routes/kernel-status.js +3 -1
- package/daemon/dist/routes/kernel-status.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +17 -2
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
- package/daemon/dist/routes/scope-approve.js +3 -0
- package/daemon/dist/routes/scope-approve.js.map +1 -1
- package/daemon/docs/reference/refocus-channel.md +33 -0
- package/daemon/docs/reference/slack-app-setup.md +13 -0
- package/daemon/docs/reference/whats-new.md +69 -74
- package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +1 -0
- package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +12 -4
- package/dist/build-info.js +3 -3
- package/dist/commands/chatroom.d.ts.map +1 -1
- package/dist/commands/chatroom.js +25 -5
- package/dist/commands/chatroom.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +3 -0
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +10 -1
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +23 -5
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/slack.d.ts +17 -0
- package/dist/commands/slack.d.ts.map +1 -1
- package/dist/commands/slack.js +41 -0
- package/dist/commands/slack.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +5 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/cross-host-types.d.ts +1 -1
- package/dist/cross-host-types.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.d.ts +13 -0
- package/dist/lib/scope/scope-fs.d.ts.map +1 -1
- package/dist/lib/scope/scope-fs.js +28 -4
- package/dist/lib/scope/scope-fs.js.map +1 -1
- package/dist/remote-host-ops.d.ts +4 -0
- package/dist/remote-host-ops.d.ts.map +1 -1
- package/dist/remote-host-ops.js +20 -2
- package/dist/remote-host-ops.js.map +1 -1
- package/package.json +1 -1
- package/tui/dist/connections/connections-model.d.ts +5 -0
- package/tui/dist/connections/connections-model.d.ts.map +1 -1
- package/tui/dist/connections/connections-model.js +16 -1
- package/tui/dist/connections/connections-model.js.map +1 -1
|
@@ -8,8 +8,16 @@ export interface HumanQuestion {
|
|
|
8
8
|
question: string;
|
|
9
9
|
options: HumanQuestionOption[];
|
|
10
10
|
}
|
|
11
|
-
/**
|
|
12
|
-
export
|
|
11
|
+
/** A whole thread reply, not a button choice or a human-selected question. */
|
|
12
|
+
export interface TypedHumanReply {
|
|
13
|
+
kind: "typed-reply";
|
|
14
|
+
text: string;
|
|
15
|
+
placement: "first-unanswered";
|
|
16
|
+
/** Other question slots still empty immediately after this reply's placement. */
|
|
17
|
+
unansweredCount: number;
|
|
18
|
+
}
|
|
19
|
+
/** questionId → chosen optionId (string) or explicitly tagged whole typed reply. */
|
|
20
|
+
export type HumanAnswers = Record<string, string | TypedHumanReply>;
|
|
13
21
|
/** The outcome of recording one clicked answer (QueueRepository.recordHumanAnswer). */
|
|
14
22
|
export type RecordHumanAnswerResult = {
|
|
15
23
|
status: "recorded";
|
|
@@ -34,7 +42,8 @@ export type HumanQuestionsParse = {
|
|
|
34
42
|
};
|
|
35
43
|
/** Validate an authored questions value. Returns a normalized copy (only known fields kept). */
|
|
36
44
|
export declare function parseHumanQuestions(value: unknown): HumanQuestionsParse;
|
|
37
|
-
|
|
45
|
+
export declare function describeTypedReplyPlacement(question: HumanQuestion, reply: TypedHumanReply): string;
|
|
46
|
+
/** Button choices use option labels; typed replies keep their words and placement provenance. */
|
|
38
47
|
export declare function formatHumanAnswers(questions: readonly HumanQuestion[], answers: HumanAnswers): string[];
|
|
39
48
|
/** The questions still waiting for an answer. */
|
|
40
49
|
export declare function unansweredQuestions(questions: readonly HumanQuestion[], answers: HumanAnswers): HumanQuestion[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"human-questions.d.ts","sourceRoot":"","sources":["../../src/domain/human-questions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,
|
|
1
|
+
{"version":3,"file":"human-questions.d.ts","sourceRoot":"","sources":["../../src/domain/human-questions.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,kBAAkB,CAAC;IAC9B,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,oFAAoF;AACpF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC;AAEpE,uFAAuF;AACvF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,aAAa,EAAE,CAAA;CAAE,GAC5F;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAIrC,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,aAAa,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1G,gGAAgG;AAChG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAoCvE;AAQD,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAEnG;AAED,iGAAiG;AACjG,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAOvG;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,aAAa,EAAE,EAAE,OAAO,EAAE,YAAY,GAAG,aAAa,EAAE,CAE/G"}
|
|
@@ -60,18 +60,23 @@ export function parseHumanQuestions(value) {
|
|
|
60
60
|
}
|
|
61
61
|
return { ok: true, questions };
|
|
62
62
|
}
|
|
63
|
-
/** The recorded
|
|
63
|
+
/** The recorded answer for a question. Own keys only: a question id like "constructor" must
|
|
64
64
|
* not read the inherited Object.prototype member as an answer. */
|
|
65
65
|
function ownAnswer(answers, questionId) {
|
|
66
66
|
return Object.prototype.hasOwnProperty.call(answers, questionId) ? answers[questionId] : undefined;
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
export function describeTypedReplyPlacement(question, reply) {
|
|
69
|
+
return `Whole typed reply, automatically placed under first unanswered question ${JSON.stringify(question.question)}; ${reply.unansweredCount} question${reply.unansweredCount === 1 ? "" : "s"} left unanswered`;
|
|
70
|
+
}
|
|
71
|
+
/** Button choices use option labels; typed replies keep their words and placement provenance. */
|
|
69
72
|
export function formatHumanAnswers(questions, answers) {
|
|
70
73
|
return questions.flatMap((q) => {
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
74
|
+
const answer = ownAnswer(answers, q.id);
|
|
75
|
+
if (answer == null)
|
|
73
76
|
return [];
|
|
74
|
-
|
|
77
|
+
if (typeof answer !== "string")
|
|
78
|
+
return [`${describeTypedReplyPlacement(q, answer)}: ${answer.text}`];
|
|
79
|
+
return [`${q.question}: ${q.options.find((o) => o.id === answer)?.label ?? answer}`];
|
|
75
80
|
});
|
|
76
81
|
}
|
|
77
82
|
/** The questions still waiting for an answer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"human-questions.js","sourceRoot":"","sources":["../../src/domain/human-questions.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,8FAA8F;AAC9F,gGAAgG;AAChG,kDAAkD;
|
|
1
|
+
{"version":3,"file":"human-questions.js","sourceRoot":"","sources":["../../src/domain/human-questions.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,14 @@ export interface KernelBootStatus {
|
|
|
23
23
|
/** Human-readable detail for auth_blocked / spec_missing /
|
|
24
24
|
* bootstrap_failed / degraded states. null otherwise. */
|
|
25
25
|
detail: string | null;
|
|
26
|
+
/** A boot failure the kernel has since recovered from: every seat it expects is ready again, so
|
|
27
|
+
* kernelState is ready and this keeps the failure as history. null otherwise, including while
|
|
28
|
+
* the failure is still current. */
|
|
29
|
+
lastBootFailure: {
|
|
30
|
+
state: "bootstrap_failed" | "degraded";
|
|
31
|
+
detail: string | null;
|
|
32
|
+
at: string | null;
|
|
33
|
+
} | null;
|
|
26
34
|
}
|
|
27
35
|
export interface KernelBootTrackerDeps {
|
|
28
36
|
eventBus: EventBus;
|
|
@@ -41,6 +49,10 @@ export declare class KernelBootTracker {
|
|
|
41
49
|
private variant;
|
|
42
50
|
private detail;
|
|
43
51
|
private firstUnreadySince;
|
|
52
|
+
private failedAt;
|
|
53
|
+
/** The seats the booting kernel spec declares (`pod.member`). null when unknown, which keeps a
|
|
54
|
+
* boot failure current: recovery needs the whole expected roster, never just the rows present. */
|
|
55
|
+
private expectedSeats;
|
|
44
56
|
private degradedTimer;
|
|
45
57
|
private degradedEmitted;
|
|
46
58
|
private bootstrapInFlight;
|
|
@@ -55,7 +67,7 @@ export declare class KernelBootTracker {
|
|
|
55
67
|
setSpecMissing(specPath: string): void;
|
|
56
68
|
/** Begin tracking an in-flight bootstrap. The bootstrap promise
|
|
57
69
|
* is awaited internally; the caller does NOT block on it. */
|
|
58
|
-
startBooting(variant: string, bootstrapPromise: Promise<BootstrapResult
|
|
70
|
+
startBooting(variant: string, bootstrapPromise: Promise<BootstrapResult>, expectedSeats?: readonly string[] | null): void;
|
|
59
71
|
/** Read current status. Computes agents[] live from the sessions
|
|
60
72
|
* table so the response always reflects the freshest startup_status. */
|
|
61
73
|
getStatus(): KernelBootStatus;
|
|
@@ -67,6 +79,13 @@ export declare class KernelBootTracker {
|
|
|
67
79
|
private onBootstrapError;
|
|
68
80
|
private aggregateReadinessFromAgents;
|
|
69
81
|
private computeAgents;
|
|
82
|
+
/** A relaunch or `rig seat continue` adds a session row for the same node, so only each node's
|
|
83
|
+
* newest row is the seat's current startup status. */
|
|
84
|
+
private latestSessionByNode;
|
|
85
|
+
/** True only when every kernel node's newest session is ready and every expected seat has such a
|
|
86
|
+
* node. A node with no session is not ready, and a member that failed before its node was
|
|
87
|
+
* created is missing. False when the expected roster is unknown, and on any read error. */
|
|
88
|
+
private rosterRecovered;
|
|
70
89
|
private scheduleDegradedTimer;
|
|
71
90
|
private cancelTimer;
|
|
72
91
|
private checkDegraded;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-boot-tracker.d.ts","sourceRoot":"","sources":["../../src/domain/kernel-boot-tracker.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"kernel-boot-tracker.d.ts","sourceRoot":"","sources":["../../src/domain/kernel-boot-tracker.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,cAAc,GACd,cAAc,GACd,SAAS,GACT,eAAe,GACf,OAAO,GACP,kBAAkB,GAClB,UAAU,CAAC;AAEf,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,aAAa,EAAE,SAAS,GAAG,OAAO,GAAG,oBAAoB,GAAG,QAAQ,CAAC;CACtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B;mCAC+B;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;mEAC+D;IAC/D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;8DAC0D;IAC1D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;wCAEoC;IACpC,eAAe,EAAE;QAAE,KAAK,EAAE,kBAAkB,GAAG,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CAC9G;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,EAAE,aAAa,CAAC;IACvB;;;;+CAI2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,iBAAiB;IAahB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZjC,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAuB;IACvC;uGACmG;IACnG,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,iBAAiB,CAAS;gBAEL,IAAI,EAAE,qBAAqB;IAExD;;6BAEyB;IACzB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOhC,uEAAuE;IACvE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAOrC,+DAA+D;IAC/D,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOtC;kEAC8D;IAC9D,YAAY,CACV,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAAC,EAC1C,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GACvC,IAAI;IAiBP;6EACyE;IACzE,SAAS,IAAI,gBAAgB;IAkC7B;;uBAEmB;IACnB,IAAI,IAAI,IAAI;IAIZ,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,aAAa;IA0BrB;2DACuD;IACvD,OAAO,CAAC,mBAAmB;IAW3B;;gGAE4F;IAC5F,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;CA8BtB"}
|
|
@@ -24,6 +24,10 @@ export class KernelBootTracker {
|
|
|
24
24
|
variant = null;
|
|
25
25
|
detail = null;
|
|
26
26
|
firstUnreadySince = null;
|
|
27
|
+
failedAt = null;
|
|
28
|
+
/** The seats the booting kernel spec declares (`pod.member`). null when unknown, which keeps a
|
|
29
|
+
* boot failure current: recovery needs the whole expected roster, never just the rows present. */
|
|
30
|
+
expectedSeats = null;
|
|
27
31
|
degradedTimer = null;
|
|
28
32
|
degradedEmitted = false;
|
|
29
33
|
bootstrapInFlight = false;
|
|
@@ -55,7 +59,7 @@ export class KernelBootTracker {
|
|
|
55
59
|
}
|
|
56
60
|
/** Begin tracking an in-flight bootstrap. The bootstrap promise
|
|
57
61
|
* is awaited internally; the caller does NOT block on it. */
|
|
58
|
-
startBooting(variant, bootstrapPromise) {
|
|
62
|
+
startBooting(variant, bootstrapPromise, expectedSeats) {
|
|
59
63
|
if (this.bootstrapInFlight)
|
|
60
64
|
return;
|
|
61
65
|
this.bootstrapInFlight = true;
|
|
@@ -63,6 +67,8 @@ export class KernelBootTracker {
|
|
|
63
67
|
this.variant = variant;
|
|
64
68
|
this.detail = null;
|
|
65
69
|
this.firstUnreadySince = new Date().toISOString();
|
|
70
|
+
this.failedAt = null;
|
|
71
|
+
this.expectedSeats = expectedSeats && expectedSeats.length > 0 ? [...expectedSeats] : null;
|
|
66
72
|
this.degradedEmitted = false;
|
|
67
73
|
this.scheduleDegradedTimer();
|
|
68
74
|
bootstrapPromise
|
|
@@ -73,12 +79,24 @@ export class KernelBootTracker {
|
|
|
73
79
|
* table so the response always reflects the freshest startup_status. */
|
|
74
80
|
getStatus() {
|
|
75
81
|
const agents = this.computeAgents();
|
|
76
|
-
|
|
82
|
+
const state = this.state;
|
|
83
|
+
let kernelState = state;
|
|
84
|
+
let lastBootFailure = null;
|
|
77
85
|
// Once bootstrap has completed (state == 'booting' before then),
|
|
78
86
|
// promote to ready / partial_ready based on agent startup_status.
|
|
79
|
-
if (
|
|
87
|
+
if (state === "booting" && !this.bootstrapInFlight) {
|
|
80
88
|
kernelState = this.aggregateReadinessFromAgents(agents);
|
|
81
89
|
}
|
|
90
|
+
else if ((state === "bootstrap_failed" || state === "degraded")
|
|
91
|
+
&& !this.bootstrapInFlight
|
|
92
|
+
&& this.aggregateReadinessFromAgents(agents) === "ready"
|
|
93
|
+
&& this.rosterRecovered()) {
|
|
94
|
+
// Every seat the kernel expects has since reached ready (a resolved startup gate, a
|
|
95
|
+
// `rig seat continue`), so the failure is history, not current health. A seat that is not
|
|
96
|
+
// ready, has no session, or has no node keeps it current, and so does an unknown roster.
|
|
97
|
+
kernelState = "ready";
|
|
98
|
+
lastBootFailure = { state, detail: this.detail, at: this.failedAt };
|
|
99
|
+
}
|
|
82
100
|
return {
|
|
83
101
|
kernelState,
|
|
84
102
|
agents,
|
|
@@ -86,7 +104,8 @@ export class KernelBootTracker {
|
|
|
86
104
|
? null
|
|
87
105
|
: this.firstUnreadySince,
|
|
88
106
|
variant: this.variant,
|
|
89
|
-
detail: this.detail,
|
|
107
|
+
detail: lastBootFailure ? null : this.detail,
|
|
108
|
+
lastBootFailure,
|
|
90
109
|
};
|
|
91
110
|
}
|
|
92
111
|
/** Stop the degraded timer. Safe to call from anywhere (idempotent).
|
|
@@ -101,6 +120,7 @@ export class KernelBootTracker {
|
|
|
101
120
|
this.cancelTimer();
|
|
102
121
|
this.state = "bootstrap_failed";
|
|
103
122
|
this.detail = result.errors.join("; ");
|
|
123
|
+
this.failedAt = new Date().toISOString();
|
|
104
124
|
return;
|
|
105
125
|
}
|
|
106
126
|
// Bootstrap returned cleanly. State transitions to ready /
|
|
@@ -119,6 +139,7 @@ export class KernelBootTracker {
|
|
|
119
139
|
this.cancelTimer();
|
|
120
140
|
this.state = "bootstrap_failed";
|
|
121
141
|
this.detail = err instanceof Error ? err.message : String(err);
|
|
142
|
+
this.failedAt = new Date().toISOString();
|
|
122
143
|
}
|
|
123
144
|
aggregateReadinessFromAgents(agents) {
|
|
124
145
|
if (agents.length === 0) {
|
|
@@ -136,19 +157,15 @@ export class KernelBootTracker {
|
|
|
136
157
|
}
|
|
137
158
|
computeAgents() {
|
|
138
159
|
try {
|
|
139
|
-
|
|
140
|
-
if (kernelRigs.length === 0)
|
|
141
|
-
return [];
|
|
160
|
+
// Archived kernel generations aren't the current kernel.
|
|
142
161
|
const out = [];
|
|
143
|
-
for (const rig of
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
// sessionName; runtime comes from the node row. Read minimal
|
|
148
|
-
// fields here so the tracker doesn't pull in node-repository.
|
|
162
|
+
for (const rig of this.deps.rigRepo.findUnarchivedRigsByName("kernel")) {
|
|
163
|
+
// One entry per seat. The runtime is on the node row, not the session.
|
|
164
|
+
const runtimeByNode = new Map((this.deps.rigRepo.getRig(rig.id)?.nodes ?? []).map((node) => [node.id, node.runtime]));
|
|
165
|
+
for (const s of this.latestSessionByNode(rig.id).values()) {
|
|
149
166
|
out.push({
|
|
150
167
|
sessionName: s.sessionName,
|
|
151
|
-
runtime: s.
|
|
168
|
+
runtime: runtimeByNode.get(s.nodeId) ?? "unknown",
|
|
152
169
|
startupStatus: s.startupStatus,
|
|
153
170
|
});
|
|
154
171
|
}
|
|
@@ -162,6 +179,40 @@ export class KernelBootTracker {
|
|
|
162
179
|
return [];
|
|
163
180
|
}
|
|
164
181
|
}
|
|
182
|
+
/** A relaunch or `rig seat continue` adds a session row for the same node, so only each node's
|
|
183
|
+
* newest row is the seat's current startup status. */
|
|
184
|
+
latestSessionByNode(rigId) {
|
|
185
|
+
const latestByNode = new Map();
|
|
186
|
+
for (const s of this.deps.sessionRegistry.getSessionsForRig(rigId)) {
|
|
187
|
+
const prior = latestByNode.get(s.nodeId);
|
|
188
|
+
if (!prior || s.createdAt > prior.createdAt || (s.createdAt === prior.createdAt && s.id > prior.id)) {
|
|
189
|
+
latestByNode.set(s.nodeId, s);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return latestByNode;
|
|
193
|
+
}
|
|
194
|
+
/** True only when every kernel node's newest session is ready and every expected seat has such a
|
|
195
|
+
* node. A node with no session is not ready, and a member that failed before its node was
|
|
196
|
+
* created is missing. False when the expected roster is unknown, and on any read error. */
|
|
197
|
+
rosterRecovered() {
|
|
198
|
+
if (!this.expectedSeats)
|
|
199
|
+
return false;
|
|
200
|
+
try {
|
|
201
|
+
const readySeats = new Set();
|
|
202
|
+
for (const rig of this.deps.rigRepo.findUnarchivedRigsByName("kernel")) {
|
|
203
|
+
const latest = this.latestSessionByNode(rig.id);
|
|
204
|
+
for (const node of this.deps.rigRepo.getRig(rig.id)?.nodes ?? []) {
|
|
205
|
+
if (latest.get(node.id)?.startupStatus !== "ready")
|
|
206
|
+
return false;
|
|
207
|
+
readySeats.add(node.logicalId);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return readySeats.size > 0 && this.expectedSeats.every((seat) => readySeats.has(seat));
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
165
216
|
scheduleDegradedTimer() {
|
|
166
217
|
const ms = this.deps.degradedTimeoutMs ?? 90_000;
|
|
167
218
|
if (ms <= 0)
|
|
@@ -193,6 +244,7 @@ export class KernelBootTracker {
|
|
|
193
244
|
return;
|
|
194
245
|
this.degradedEmitted = true;
|
|
195
246
|
this.state = "degraded";
|
|
247
|
+
this.failedAt = new Date().toISOString();
|
|
196
248
|
try {
|
|
197
249
|
this.deps.eventBus.emit({
|
|
198
250
|
type: "kernel.agent.degraded",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-boot-tracker.js","sourceRoot":"","sources":["../../src/domain/kernel-boot-tracker.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,8DAA8D;AAC9D,EAAE;AACF,sFAAsF;AACtF,8EAA8E;AAC9E,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,EAAE;AACF,6DAA6D;AAC7D,+EAA+E;AAC/E,uEAAuE;AACvE,qCAAqC;
|
|
1
|
+
{"version":3,"file":"kernel-boot-tracker.js","sourceRoot":"","sources":["../../src/domain/kernel-boot-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,10 @@ export interface KernelBootDeps {
|
|
|
40
40
|
* decoupling. Tracker state is observable via getStatus() and the
|
|
41
41
|
* /api/kernel/status route. */
|
|
42
42
|
export declare function bootKernelIfNeeded(deps: KernelBootDeps): Promise<KernelBootTracker>;
|
|
43
|
+
/** The seats the selected kernel spec declares, as `pod.member` logical IDs, so a boot failure is treated as
|
|
44
|
+
* recovered only when every one of them is ready. null when the spec can't be read as pods with members: the
|
|
45
|
+
* tracker then keeps a failure current, because an unknown roster must never read as ready. */
|
|
46
|
+
export declare function expectedKernelSeats(specPath: string): string[] | null;
|
|
43
47
|
/** True when a rig named `kernel` already exists in the DB. */
|
|
44
48
|
export declare function kernelAlreadyManaged(rigRepo: RigRepository): boolean;
|
|
45
49
|
/** Choose a rig variant from the auth probe. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-boot.d.ts","sourceRoot":"","sources":["../../src/domain/kernel-boot.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"kernel-boot.d.ts","sourceRoot":"","sources":["../../src/domain/kernel-boot.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,aAAa,CAAC;AAErD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C;;sDAEkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;0BAKsB;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAClD;gCAC4B;IAC5B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClE;gEAC4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;gCAKgC;AAChC,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAiEzF;AAED;;gGAEgG;AAChG,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAgBrE;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAGpE;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAO/D;AAED,2DAA2D;AAC3D,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAkCxE;AAED;;;;;;;kEAOkE;AAClE,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAuBpF;AAED;;+EAE+E;AAC/E,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjD,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAK7B;AAED;2DAC2D;AAC3D,wBAAgB,gBAAgB,IAAI,MAAM,CAMzC"}
|
|
@@ -20,6 +20,7 @@ import os from "node:os";
|
|
|
20
20
|
import { existsSync, readFileSync } from "node:fs";
|
|
21
21
|
import { parse as parseToml } from "smol-toml";
|
|
22
22
|
import { KernelBootTracker } from "./kernel-boot-tracker.js";
|
|
23
|
+
import { RigSpecCodec } from "./rigspec-codec.js";
|
|
23
24
|
/** Entry point. Idempotent: safe to call on every daemon startup.
|
|
24
25
|
* Returns the tracker immediately; bootstrap (if fired) runs in the
|
|
25
26
|
* background. Callers should NOT await the tracker's internal
|
|
@@ -82,9 +83,33 @@ export async function bootKernelIfNeeded(deps) {
|
|
|
82
83
|
autoApprove: true,
|
|
83
84
|
cwdOverride: deps.cwdOverride,
|
|
84
85
|
});
|
|
85
|
-
tracker.startBooting(variant, bootstrapPromise);
|
|
86
|
+
tracker.startBooting(variant, bootstrapPromise, expectedKernelSeats(specPath));
|
|
86
87
|
return tracker;
|
|
87
88
|
}
|
|
89
|
+
/** The seats the selected kernel spec declares, as `pod.member` logical IDs, so a boot failure is treated as
|
|
90
|
+
* recovered only when every one of them is ready. null when the spec can't be read as pods with members: the
|
|
91
|
+
* tracker then keeps a failure current, because an unknown roster must never read as ready. */
|
|
92
|
+
export function expectedKernelSeats(specPath) {
|
|
93
|
+
try {
|
|
94
|
+
const raw = RigSpecCodec.parse(readFileSync(specPath, "utf-8"));
|
|
95
|
+
if (!raw || !Array.isArray(raw.pods))
|
|
96
|
+
return null;
|
|
97
|
+
const seats = [];
|
|
98
|
+
for (const pod of raw.pods) {
|
|
99
|
+
if (typeof pod?.id !== "string" || !Array.isArray(pod.members))
|
|
100
|
+
return null;
|
|
101
|
+
for (const member of pod.members) {
|
|
102
|
+
if (typeof member?.id !== "string")
|
|
103
|
+
return null;
|
|
104
|
+
seats.push(`${pod.id}.${member.id}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return seats.length > 0 ? seats : null;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
88
113
|
/** True when a rig named `kernel` already exists in the DB. */
|
|
89
114
|
export function kernelAlreadyManaged(rigRepo) {
|
|
90
115
|
const rigs = rigRepo.listRigs();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-boot.js","sourceRoot":"","sources":["../../src/domain/kernel-boot.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,mEAAmE;AACnE,mEAAmE;AACnE,iEAAiE;AACjE,+BAA+B;AAC/B,mEAAmE;AACnE,4DAA4D;AAC5D,sEAAsE;AACtE,kDAAkD;AAClD,EAAE;AACF,iEAAiE;AACjE,sEAAsE;AACtE,uEAAuE;AACvE,uEAAuE;AACvE,uEAAuE;AACvE,wCAAwC;AAExC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAK/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"kernel-boot.js","sourceRoot":"","sources":["../../src/domain/kernel-boot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-process-lineage.d.ts","sourceRoot":"","sources":["../../src/domain/native-process-lineage.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"native-process-lineage.d.ts","sourceRoot":"","sources":["../../src/domain/native-process-lineage.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,23 +60,46 @@ function claudeExecutable(token, selectedExecutable) {
|
|
|
60
60
|
return token.startsWith("/") && !token.split("/").some(part => part === "." || part === "..")
|
|
61
61
|
&& /\/\.local\/share\/claude\/versions\/\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/.test(token);
|
|
62
62
|
}
|
|
63
|
+
// Nixpkgs packages Claude as a wrapper that execs its sibling `.claude-unwrapped`
|
|
64
|
+
// (wrapProgram: `.claude-wrapped`) with argv[0] inherited. Linux truncates that OS
|
|
65
|
+
// name to 15 bytes, so ucomm reads `.claude-unwrapp`.
|
|
66
|
+
const NIX_WRAPPED_CLAUDE_NAMES = [".claude-unwrapped", ".claude-wrapped"];
|
|
67
|
+
const TASK_COMM_LENGTH = 15;
|
|
68
|
+
function osNameIs(osName, name) {
|
|
69
|
+
return osName === name || (osName.length === TASK_COMM_LENGTH && name.startsWith(osName));
|
|
70
|
+
}
|
|
71
|
+
// Only the wrapped binary inside a claude-code store output, and when a launch froze
|
|
72
|
+
// its executable, only the sibling of that wrapper.
|
|
73
|
+
function nixWrappedClaudeExecutable(path, selectedExecutable) {
|
|
74
|
+
const match = path.match(/^(\/nix\/store\/[0-9a-df-np-sv-z]{32}-claude-code(?:-[^/]+)?\/bin)\/\.claude-(?:un)?wrapped$/);
|
|
75
|
+
if (!match || path.split("/").some(part => part === "." || part === ".."))
|
|
76
|
+
return false;
|
|
77
|
+
return !selectedExecutable || selectedExecutable === `${match[1]}/claude`;
|
|
78
|
+
}
|
|
63
79
|
function claudeProcess(row, selectedExecutable) {
|
|
64
80
|
const argv0 = tokens(row.command)[0] ?? "";
|
|
65
81
|
if (!claudeExecutable(argv0, selectedExecutable))
|
|
66
82
|
return false;
|
|
67
|
-
|
|
83
|
+
const osName = row.executableName ?? "";
|
|
84
|
+
if (executableName(osName) === executableName(argv0))
|
|
68
85
|
return true;
|
|
69
86
|
// Native Claude can retain its versioned OS name while rewriting argv[0] to
|
|
70
|
-
// claude
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
87
|
+
// claude, and a Nix wrapper leaves its wrapped OS name. Either name only selects
|
|
88
|
+
// candidates for an OS path read; it is not proof.
|
|
89
|
+
const path = row.executablePath;
|
|
90
|
+
if (!needsClaudeExecutablePath(row) || !path)
|
|
91
|
+
return false;
|
|
92
|
+
if (claudeExecutable(path, selectedExecutable) && executableName(path) === executableName(osName))
|
|
93
|
+
return true;
|
|
94
|
+
return nixWrappedClaudeExecutable(path, selectedExecutable) && osNameIs(osName, path.split("/").pop());
|
|
74
95
|
}
|
|
75
96
|
function needsClaudeExecutablePath(row) {
|
|
76
97
|
const argv0 = tokens(row.command)[0] ?? "";
|
|
98
|
+
const osName = row.executableName ?? "";
|
|
77
99
|
return claudeExecutable(argv0)
|
|
78
|
-
&& executableName(
|
|
79
|
-
&& /^\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/.test(
|
|
100
|
+
&& executableName(osName) !== executableName(argv0)
|
|
101
|
+
&& (/^\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/.test(osName)
|
|
102
|
+
|| NIX_WRAPPED_CLAUDE_NAMES.some(name => osNameIs(osName, name)));
|
|
80
103
|
}
|
|
81
104
|
function commandUsesExpectedToken(command, runtime, expectedToken) {
|
|
82
105
|
const argv = tokens(command);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-process-lineage.js","sourceRoot":"","sources":["../../src/domain/native-process-lineage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"native-process-lineage.js","sourceRoot":"","sources":["../../src/domain/native-process-lineage.ts"],"names":[],"mappings":"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"}
|