ftown-bridge 0.19.37 → 0.19.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.
- package/dist/browser-access.js +2 -1
- package/dist/browser-access.js.map +1 -1
- package/dist/centrifugo-client.d.ts +1 -4
- package/dist/centrifugo-client.js +0 -29
- package/dist/centrifugo-client.js.map +1 -1
- package/dist/command-rpc.d.ts +1 -3
- package/dist/command-rpc.js +20 -74
- package/dist/command-rpc.js.map +1 -1
- package/dist/create-ftown-session.d.ts +0 -1
- package/dist/create-ftown-session.js +7 -13
- package/dist/create-ftown-session.js.map +1 -1
- package/dist/ftown-home.js +2 -2
- package/dist/ftown-sessions-cli.js +5 -340
- package/dist/ftown-sessions-cli.js.map +1 -1
- package/dist/harness-registry.d.ts +3 -22
- package/dist/harness-registry.js +3 -17
- package/dist/harness-registry.js.map +1 -1
- package/dist/index.js +10 -65
- package/dist/index.js.map +1 -1
- package/dist/install-ftown-skill.d.ts +5 -0
- package/dist/install-ftown-skill.js +91 -9
- package/dist/install-ftown-skill.js.map +1 -1
- package/dist/local-api-server.d.ts +1 -18
- package/dist/local-api-server.js +10 -108
- package/dist/local-api-server.js.map +1 -1
- package/dist/provider-env-store.js +1 -1
- package/dist/provider-env-store.js.map +1 -1
- package/dist/retired-automation.d.ts +14 -0
- package/dist/retired-automation.js +18 -0
- package/dist/retired-automation.js.map +1 -0
- package/dist/retired-skill-assets.d.ts +2 -0
- package/dist/retired-skill-assets.js +21 -0
- package/dist/retired-skill-assets.js.map +1 -0
- package/dist/session-controller.d.ts +2 -1
- package/dist/session-controller.js +5 -1
- package/dist/session-controller.js.map +1 -1
- package/dist/session-resurrection.d.ts +8 -2
- package/dist/session-resurrection.js +53 -17
- package/dist/session-resurrection.js.map +1 -1
- package/dist/solo/contract.d.ts +1 -1
- package/dist/solo/contract.js +2 -12
- package/dist/solo/contract.js.map +1 -1
- package/dist/solo/hub-manager.js +1 -1
- package/dist/terminal-pump.d.ts +1 -2
- package/dist/terminal-pump.js +1 -2
- package/dist/terminal-pump.js.map +1 -1
- package/dist/types.d.ts +4 -112
- package/dist/wire-types.d.ts +4 -48
- package/dist/wire-types.js +2 -0
- package/dist/wire-types.js.map +1 -1
- package/package.json +1 -2
- package/pi-extension/API.md +4 -12
- package/pi-extension/ftown.js +0 -138
- package/skills/ftown/SKILL.md +5 -27
- package/skills/ftown/agents/openai.yaml +2 -2
- package/skills/ftown/references/orchestrator.md +10 -65
- package/skills/ftown/references/sessions.md +3 -16
- package/skills/ftown/references/workflows.md +1 -3
- package/dist/loop-controller.d.ts +0 -87
- package/dist/loop-controller.js +0 -133
- package/dist/loop-controller.js.map +0 -1
- package/dist/loop-run-store.d.ts +0 -10
- package/dist/loop-run-store.js +0 -153
- package/dist/loop-run-store.js.map +0 -1
- package/dist/loop-schedule.d.ts +0 -18
- package/dist/loop-schedule.js +0 -35
- package/dist/loop-schedule.js.map +0 -1
- package/dist/loop-scheduler.d.ts +0 -148
- package/dist/loop-scheduler.js +0 -543
- package/dist/loop-scheduler.js.map +0 -1
- package/dist/loop-store.d.ts +0 -38
- package/dist/loop-store.js +0 -153
- package/dist/loop-store.js.map +0 -1
- package/dist/loop-validation.d.ts +0 -15
- package/dist/loop-validation.js +0 -91
- package/dist/loop-validation.js.map +0 -1
- package/skills/factory/SKILL.md +0 -198
- package/skills/factory/factory-template/bin/dispatch.py +0 -478
- package/skills/factory/factory-template/factory.yaml +0 -43
- package/skills/factory/factory-template/skills/_protocol.md +0 -105
- package/skills/factory/factory-template/skills/design.md +0 -260
- package/skills/factory/factory-template/skills/digest.md +0 -78
- package/skills/factory/factory-template/skills/groom.md +0 -243
- package/skills/factory/factory-template/skills/implement.md +0 -316
- package/skills/factory/factory-template/skills/pr.md +0 -221
- package/skills/factory/factory-template/skills/qa.md +0 -226
- package/skills/factory/factory-template/skills/review.md +0 -232
- package/skills/factory/factory-template/skills/triage.md +0 -157
- package/skills/ftown/references/loops.md +0 -93
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AUTOMATION_REMOVED_CODE, AUTOMATION_REMOVED_MESSAGE } from './wire-types.js';
|
|
2
|
+
export { AUTOMATION_REMOVED_CODE, AUTOMATION_REMOVED_MESSAGE };
|
|
3
|
+
/** Compatibility tombstones only; these are no longer supported commands. */
|
|
4
|
+
export const RETIRED_AUTOMATION_COMMANDS = new Set([
|
|
5
|
+
'create_loop', 'list_loops', 'update_loop', 'delete_loop', 'run_loop_now', 'get_loop_runs',
|
|
6
|
+
]);
|
|
7
|
+
export function isRetiredAutomationSession(session) {
|
|
8
|
+
return typeof session.loopId === 'string' && session.loopId.trim().length > 0;
|
|
9
|
+
}
|
|
10
|
+
export class AutomationRemovedError extends Error {
|
|
11
|
+
code = AUTOMATION_REMOVED_CODE;
|
|
12
|
+
constructor() { super(AUTOMATION_REMOVED_MESSAGE); }
|
|
13
|
+
}
|
|
14
|
+
export function assertSessionCanLaunch(session) {
|
|
15
|
+
if (isRetiredAutomationSession(session))
|
|
16
|
+
throw new AutomationRemovedError();
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=retired-automation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retired-automation.js","sourceRoot":"","sources":["../src/retired-automation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAEtF,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,CAAC;AAE/D,6EAA6E;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAAC;IACtE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe;CAC3F,CAAC,CAAC;AAEH,MAAM,UAAU,0BAA0B,CAAC,OAA4B;IACrE,OAAO,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,IAAI,GAAG,uBAAuB,CAAC;IACxC,gBAAgB,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,UAAU,sBAAsB,CAAC,OAA4B;IACjE,IAAI,0BAA0B,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,sBAAsB,EAAE,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// SHA-256 inventory of bridge-owned assets shipped before retirement.
|
|
2
|
+
// Used only to recognize untouched installed copies; no execution content.
|
|
3
|
+
export const RETIRED_FACTORY_ASSETS = {
|
|
4
|
+
"SKILL.md": "9c6b36583ef4534a2cbb81d9ae8813d411d3ccc14f3878fcf442ed873fc41d56",
|
|
5
|
+
"factory-template": "directory",
|
|
6
|
+
"factory-template/bin": "directory",
|
|
7
|
+
"factory-template/bin/dispatch.py": "60f7f33015835eb276a88a0e0d2e0ec17aa8153ef46f718f95f32a226c918870",
|
|
8
|
+
"factory-template/factory.yaml": "e4672704e9abff049595f81a65f07dcee462c64c8aa74c27e44966e6d450c9b2",
|
|
9
|
+
"factory-template/skills": "directory",
|
|
10
|
+
"factory-template/skills/_protocol.md": "ab11e25b7f071185e6b5839a9c72e87f277d8e9a60a5e59e7e76f34adc94af38",
|
|
11
|
+
"factory-template/skills/design.md": "9be1746fb65c6b8fa2528620ed243c014990c840c023852c69fdc118c5e06059",
|
|
12
|
+
"factory-template/skills/digest.md": "642acb7283a9b994910cab75632e447cdc1b5ca9466e37ad6e5be34a315da0e7",
|
|
13
|
+
"factory-template/skills/groom.md": "4661818f3e110b86043f11b140d76c9e8165dd89019d2e6ec9059b3108863da6",
|
|
14
|
+
"factory-template/skills/implement.md": "16e392533d8db59f7961eff63b389579198384523317976f3a45aa6a3352f1f3",
|
|
15
|
+
"factory-template/skills/pr.md": "1b9b0728159a1d48c0761b6663e5685fb15fe3faedf8608a0faaeb6cfc8b54d6",
|
|
16
|
+
"factory-template/skills/qa.md": "70902d361441ce38c8b3615ca757a79d272f37c09a1850a3aca8d0a495ca5358",
|
|
17
|
+
"factory-template/skills/review.md": "3ede6058f024da2c080fd49d42b94e9b09fec6cac285235ec83631477e3d1c2a",
|
|
18
|
+
"factory-template/skills/triage.md": "5fce18ea3417b3a37ec3e0ce4eaf4c004829133b3e879340c1e3f8b445d32d82"
|
|
19
|
+
};
|
|
20
|
+
export const RETIRED_LOOP_REFERENCE_SHA256 = "0b1d4b879321aaf9125d9203ab289a9e17057a3345c3afa6d97f7298bc8ed441";
|
|
21
|
+
//# sourceMappingURL=retired-skill-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retired-skill-assets.js","sourceRoot":"","sources":["../src/retired-skill-assets.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAqC;IACtE,UAAU,EAAE,kEAAkE;IAC9E,kBAAkB,EAAE,WAAW;IAC/B,sBAAsB,EAAE,WAAW;IACnC,kCAAkC,EAAE,kEAAkE;IACtG,+BAA+B,EAAE,kEAAkE;IACnG,yBAAyB,EAAE,WAAW;IACtC,sCAAsC,EAAE,kEAAkE;IAC1G,mCAAmC,EAAE,kEAAkE;IACvG,mCAAmC,EAAE,kEAAkE;IACvG,kCAAkC,EAAE,kEAAkE;IACtG,sCAAsC,EAAE,kEAAkE;IAC1G,+BAA+B,EAAE,kEAAkE;IACnG,+BAA+B,EAAE,kEAAkE;IACnG,mCAAmC,EAAE,kEAAkE;IACvG,mCAAmC,EAAE,kEAAkE;CACxG,CAAC;AACF,MAAM,CAAC,MAAM,6BAA6B,GAAG,kEAAkE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AUTOMATION_REMOVED_CODE } from './retired-automation.js';
|
|
1
2
|
import { type CreateFtownSessionDeps, type CreateFtownSessionInput } from './create-ftown-session.js';
|
|
2
3
|
import type { RemoveFtownSessionOptions } from './remove-ftown-session.js';
|
|
3
4
|
import type { Session, SessionUsage } from './types.js';
|
|
@@ -14,7 +15,7 @@ import type { Session, SessionUsage } from './types.js';
|
|
|
14
15
|
* (RPC outer catch with the working-dir data envelope; HTTP 422/400/500).
|
|
15
16
|
* - State/lookup failures return typed `{ ok: false, code, message }` results.
|
|
16
17
|
*/
|
|
17
|
-
export type SessionErrorCode = 'not_found' | 'invalid' | 'conflict';
|
|
18
|
+
export type SessionErrorCode = 'not_found' | 'invalid' | 'conflict' | typeof AUTOMATION_REMOVED_CODE;
|
|
18
19
|
export interface SessionControllerError {
|
|
19
20
|
ok: false;
|
|
20
21
|
code: SessionErrorCode;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AUTOMATION_REMOVED_CODE, AUTOMATION_REMOVED_MESSAGE, isRetiredAutomationSession } from './retired-automation.js';
|
|
1
2
|
import { createFtownSession, relaunchFtownSession, } from './create-ftown-session.js';
|
|
2
3
|
export class SessionController {
|
|
3
4
|
deps;
|
|
@@ -78,17 +79,20 @@ export class SessionController {
|
|
|
78
79
|
}
|
|
79
80
|
/** Re-run a finished/dead session's stored command verbatim. */
|
|
80
81
|
async retry(sessionId) {
|
|
81
|
-
const factory = this.require(this.deps.sessionFactory, 'sessionFactory');
|
|
82
82
|
const existingSession = await this.deps.store.loadSession(sessionId);
|
|
83
83
|
if (!existingSession) {
|
|
84
84
|
return { ok: false, code: 'not_found', message: 'Session not found' };
|
|
85
85
|
}
|
|
86
|
+
if (isRetiredAutomationSession(existingSession)) {
|
|
87
|
+
return { ok: false, code: AUTOMATION_REMOVED_CODE, message: AUTOMATION_REMOVED_MESSAGE };
|
|
88
|
+
}
|
|
86
89
|
if (existingSession.status === 'running') {
|
|
87
90
|
return { ok: false, code: 'conflict', message: 'Session is already running' };
|
|
88
91
|
}
|
|
89
92
|
if (!existingSession.command) {
|
|
90
93
|
return { ok: false, code: 'invalid', message: 'Session has no command (created before v0.2.0)' };
|
|
91
94
|
}
|
|
95
|
+
const factory = this.require(this.deps.sessionFactory, 'sessionFactory');
|
|
92
96
|
await relaunchFtownSession(factory, existingSession, 'retry');
|
|
93
97
|
return { ok: true, session: existingSession };
|
|
94
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../src/session-controller.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../src/session-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,17 +4,23 @@ import type { ProcessRunner } from './claude-runner.js';
|
|
|
4
4
|
import { type CreateFtownSessionDeps } from './create-ftown-session.js';
|
|
5
5
|
export declare function shouldResurrectStoredSession(session: Session): boolean;
|
|
6
6
|
export interface SessionResurrectionDeps {
|
|
7
|
-
store: SessionStore
|
|
7
|
+
store: Pick<SessionStore, 'listSessions' | 'listArchived' | 'loadSession' | 'saveSession'>;
|
|
8
8
|
runner: ProcessRunner;
|
|
9
9
|
bridgeId: string;
|
|
10
10
|
sessionFactoryDeps: CreateFtownSessionDeps;
|
|
11
11
|
publishSessionUpdate: (session: Session) => Promise<void>;
|
|
12
12
|
wireTerminalInput: (sessionId: string) => void;
|
|
13
|
+
/** Exact dedicated-socket operations; injectable without touching a live tmux server. */
|
|
14
|
+
tmux?: {
|
|
15
|
+
available(): boolean;
|
|
16
|
+
list(): string[];
|
|
17
|
+
kill(sessionId: string): Promise<boolean>;
|
|
18
|
+
};
|
|
13
19
|
}
|
|
14
20
|
/**
|
|
15
21
|
* Resurrection engine: on bridge start, sessions left in a live state by a
|
|
16
22
|
* previous bridge are reattached (tmux), respawned (resume), or marked as
|
|
17
|
-
* error.
|
|
23
|
+
* error. Historical loop-owned sessions are retired before ordinary resurrection.
|
|
18
24
|
*/
|
|
19
25
|
export declare class SessionResurrection {
|
|
20
26
|
private readonly deps;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AUTOMATION_REMOVED_MESSAGE, isRetiredAutomationSession } from './retired-automation.js';
|
|
1
2
|
import { canResumeStoredSession, findMissingProviderAuth, relaunchFtownSession, } from './create-ftown-session.js';
|
|
2
3
|
import { loadProviderEnv } from './provider-env-store.js';
|
|
3
4
|
import { registerSessionWorkspace } from './session-registry.js';
|
|
@@ -5,12 +6,12 @@ import { isTmuxAvailable, killTmuxSession, listFtownTmuxSessions } from './tmux.
|
|
|
5
6
|
export function shouldResurrectStoredSession(session) {
|
|
6
7
|
if (session.status !== 'running' && session.status !== 'pending')
|
|
7
8
|
return false;
|
|
8
|
-
return !session
|
|
9
|
+
return !isRetiredAutomationSession(session);
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* Resurrection engine: on bridge start, sessions left in a live state by a
|
|
12
13
|
* previous bridge are reattached (tmux), respawned (resume), or marked as
|
|
13
|
-
* error.
|
|
14
|
+
* error. Historical loop-owned sessions are retired before ordinary resurrection.
|
|
14
15
|
*/
|
|
15
16
|
export class SessionResurrection {
|
|
16
17
|
deps;
|
|
@@ -31,7 +32,7 @@ export class SessionResurrection {
|
|
|
31
32
|
// Commands run concurrently with the resurrection loop; act on fresh
|
|
32
33
|
// state so a session stopped or removed mid-loop is not respawned.
|
|
33
34
|
const session = await store.loadSession(sessionId);
|
|
34
|
-
if (!session || (session
|
|
35
|
+
if (!session || !shouldResurrectStoredSession(session))
|
|
35
36
|
return;
|
|
36
37
|
if (runner.isRunning(session.id))
|
|
37
38
|
return;
|
|
@@ -73,14 +74,56 @@ export class SessionResurrection {
|
|
|
73
74
|
this.started = true;
|
|
74
75
|
const { store } = this.deps;
|
|
75
76
|
const sessions = await store.listSessions();
|
|
77
|
+
const tmux = this.deps.tmux ?? {
|
|
78
|
+
available: isTmuxAvailable, list: listFtownTmuxSessions, kill: killTmuxSession,
|
|
79
|
+
};
|
|
80
|
+
const liveTmuxIds = new Set(tmux.available() ? tmux.list() : []);
|
|
81
|
+
const retiredIds = new Set(sessions.filter(isRetiredAutomationSession).map((session) => session.id));
|
|
82
|
+
// Only explicit historical provenance proves ownership. Do not inspect loop
|
|
83
|
+
// definitions, prompts, names, or project data. Retry cleanup on later starts
|
|
84
|
+
// even if an earlier start already marked this record error.
|
|
85
|
+
for (const snapshot of sessions) {
|
|
86
|
+
if (!retiredIds.has(snapshot.id))
|
|
87
|
+
continue;
|
|
88
|
+
try {
|
|
89
|
+
const current = await store.loadSession(snapshot.id);
|
|
90
|
+
if (!current || !isRetiredAutomationSession(current))
|
|
91
|
+
continue;
|
|
92
|
+
let cleanupFailed = false;
|
|
93
|
+
if (liveTmuxIds.has(current.id)) {
|
|
94
|
+
try {
|
|
95
|
+
cleanupFailed = !await tmux.kill(current.id);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
cleanupFailed = true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const reason = cleanupFailed
|
|
102
|
+
? `${AUTOMATION_REMOVED_MESSAGE}; failed to stop retired tmux session ${current.id}; cleanup will retry on bridge restart`
|
|
103
|
+
: AUTOMATION_REMOVED_MESSAGE;
|
|
104
|
+
if (cleanupFailed)
|
|
105
|
+
console.error(`[Bridge] ${reason}`);
|
|
106
|
+
if (current.status === 'running' || current.status === 'pending' || cleanupFailed
|
|
107
|
+
|| current.errorReason?.startsWith(`${AUTOMATION_REMOVED_MESSAGE}; failed to stop`)) {
|
|
108
|
+
await this.markSessionDead(current, reason);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
console.error(`[Bridge] Failed to retire automation session ${snapshot.id}:`, error);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
76
115
|
// Reap tmux sessions for OUR dead store records (removed records, failed
|
|
77
116
|
// kills) before resurrection re-creates any. Archived tombstones count as
|
|
78
117
|
// dead too: remove_session deletes the store record, so a failed tmux
|
|
79
118
|
// kill would otherwise leave a permanently invisible live agent. Tmux
|
|
80
119
|
// sessions with ids we have no record of are left alone — they may
|
|
81
120
|
// belong to another bridge running on this machine.
|
|
82
|
-
if (
|
|
121
|
+
if (liveTmuxIds.size > 0) {
|
|
83
122
|
const archived = await store.listArchived();
|
|
123
|
+
const currentIds = new Set(sessions.map((session) => session.id));
|
|
124
|
+
const retiredArchiveIds = new Set(archived
|
|
125
|
+
.filter((record) => isRetiredAutomationSession(record) && !currentIds.has(record.id))
|
|
126
|
+
.map((record) => record.id));
|
|
84
127
|
const deadIds = new Set([
|
|
85
128
|
...sessions
|
|
86
129
|
.filter((s) => s.status !== 'running' && s.status !== 'pending')
|
|
@@ -94,21 +137,17 @@ export class SessionResurrection {
|
|
|
94
137
|
deadIds.delete(s.id);
|
|
95
138
|
}
|
|
96
139
|
}
|
|
97
|
-
for (const tmuxId of
|
|
98
|
-
if (deadIds.has(tmuxId)) {
|
|
140
|
+
for (const tmuxId of liveTmuxIds) {
|
|
141
|
+
if (deadIds.has(tmuxId) && !retiredIds.has(tmuxId)) {
|
|
99
142
|
console.log(`[Bridge] Killing tmux session for dead session ${tmuxId}`);
|
|
100
|
-
await
|
|
143
|
+
const stopped = await tmux.kill(tmuxId);
|
|
144
|
+
if (!stopped && retiredArchiveIds.has(tmuxId)) {
|
|
145
|
+
console.error(`[Bridge] ${AUTOMATION_REMOVED_MESSAGE}; failed to stop archived retired tmux session ${tmuxId}; cleanup will retry on bridge restart`);
|
|
146
|
+
}
|
|
101
147
|
}
|
|
102
148
|
}
|
|
103
149
|
}
|
|
104
|
-
let deferredLoopRuns = 0;
|
|
105
150
|
for (const session of sessions) {
|
|
106
|
-
if (session.loopId) {
|
|
107
|
-
if (session.status !== 'running' && session.status !== 'pending')
|
|
108
|
-
continue;
|
|
109
|
-
deferredLoopRuns += 1;
|
|
110
|
-
continue;
|
|
111
|
-
}
|
|
112
151
|
if (!shouldResurrectStoredSession(session))
|
|
113
152
|
continue;
|
|
114
153
|
try {
|
|
@@ -126,9 +165,6 @@ export class SessionResurrection {
|
|
|
126
165
|
}
|
|
127
166
|
}
|
|
128
167
|
}
|
|
129
|
-
if (deferredLoopRuns > 0) {
|
|
130
|
-
console.log(`[Bridge] Deferred ${deferredLoopRuns} loop-run session(s) to the loop scheduler`);
|
|
131
|
-
}
|
|
132
168
|
}
|
|
133
169
|
}
|
|
134
170
|
//# sourceMappingURL=session-resurrection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-resurrection.js","sourceRoot":"","sources":["../src/session-resurrection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-resurrection.js","sourceRoot":"","sources":["../src/session-resurrection.ts"],"names":[],"mappings":"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"}
|
package/dist/solo/contract.d.ts
CHANGED
|
@@ -72,7 +72,7 @@ export declare const HUB_CHANNEL_DEFAULTS: Readonly<Record<string, unknown>>;
|
|
|
72
72
|
* centrifugo/config.json, which targets the SAME pinned CENTRIFUGO_VERSION
|
|
73
73
|
* (v5.4.9), so no key-format translation was needed. Every namespace prefix
|
|
74
74
|
* used by a real channel (bridges:presence#solo, commands:rpc#solo,
|
|
75
|
-
*
|
|
75
|
+
* sessions:*, terminal:*, terminal-input:*, events:*)
|
|
76
76
|
* MUST have a matching entry here or Centrifugo rejects the subscribe with
|
|
77
77
|
* code 102 "unknown channel" — this list existing at all is the fix for that
|
|
78
78
|
* bug; hub-manager.test.ts drift-guards it against centrifugo/config.json so
|
package/dist/solo/contract.js
CHANGED
|
@@ -109,7 +109,7 @@ export const HUB_CHANNEL_DEFAULTS = {
|
|
|
109
109
|
* centrifugo/config.json, which targets the SAME pinned CENTRIFUGO_VERSION
|
|
110
110
|
* (v5.4.9), so no key-format translation was needed. Every namespace prefix
|
|
111
111
|
* used by a real channel (bridges:presence#solo, commands:rpc#solo,
|
|
112
|
-
*
|
|
112
|
+
* sessions:*, terminal:*, terminal-input:*, events:*)
|
|
113
113
|
* MUST have a matching entry here or Centrifugo rejects the subscribe with
|
|
114
114
|
* code 102 "unknown channel" — this list existing at all is the fix for that
|
|
115
115
|
* bug; hub-manager.test.ts drift-guards it against centrifugo/config.json so
|
|
@@ -137,16 +137,6 @@ export const HUB_NAMESPACES = [
|
|
|
137
137
|
force_recovery: false,
|
|
138
138
|
allow_publish_for_client: true,
|
|
139
139
|
},
|
|
140
|
-
{
|
|
141
|
-
name: 'loops',
|
|
142
|
-
allow_publish_for_subscriber: true,
|
|
143
|
-
allow_subscribe_for_client: true,
|
|
144
|
-
allow_user_limited_channels: true,
|
|
145
|
-
history_size: 0,
|
|
146
|
-
history_ttl: '0s',
|
|
147
|
-
force_recovery: false,
|
|
148
|
-
allow_publish_for_client: true,
|
|
149
|
-
},
|
|
150
140
|
{
|
|
151
141
|
name: 'terminal-input',
|
|
152
142
|
allow_publish_for_subscriber: true,
|
|
@@ -233,7 +223,7 @@ export const PANEL_BUNDLE_URL_TEMPLATE = 'https://github.com/fmktech/ftown/relea
|
|
|
233
223
|
// // inheriting (production parity)
|
|
234
224
|
// namespaces = HUB_NAMESPACES // REQUIRED: every namespaced
|
|
235
225
|
// // channel (bridges:presence#solo,
|
|
236
|
-
// // commands:rpc#solo
|
|
226
|
+
// // commands:rpc#solo
|
|
237
227
|
// // #solo, sessions:*, terminal:*,
|
|
238
228
|
// // terminal-input:*, events:*) gets
|
|
239
229
|
// // Centrifugo code 102 ("unknown
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/solo/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,8BAA8B;AAE9B;;qCAEqC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC,+CAA+C;AAC/C,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAE7E,uDAAuD;AACvD,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,mCAAmC;AACnC,+EAA+E;AAC/E,2EAA2E;AAC3E,yEAAyE;AACzE,8EAA8E;AAC9E,iDAAiD;AACjD,4EAA4E;AAC5E,gEAAgE;AAChE,yEAAyE;AACzE,8EAA8E;AAC9E,kEAAkE;AAElE,oDAAoD;AAEpD,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEhD,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AAEnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAqC;IACjE,cAAc,EAAE,kEAAkE;IAClF,cAAc,EAAE,kEAAkE;IAClF,aAAa,EAAE,kEAAkE;IACjF,aAAa,EAAE,kEAAkE;CAClF,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsC;IACrE,4BAA4B,EAAE,IAAI;IAClC,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,IAAI;IAChB,qBAAqB,EAAE,IAAI;IAC3B,6BAA6B,EAAE,IAAI;IACnC,YAAY,EAAE,GAAG;IACjB,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAqD;IAC9E;QACE,IAAI,EAAE,UAAU;QAChB,4BAA4B,EAAE,IAAI;QAClC,0BAA0B,EAAE,IAAI;QAChC,2BAA2B,EAAE,IAAI;QACjC,4BAA4B,EAAE,IAAI;QAClC,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,KAAK;QAClB,cAAc,EAAE,IAAI;QACpB,wBAAwB,EAAE,IAAI;KAC/B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,4BAA4B,EAAE,IAAI;QAClC,0BAA0B,EAAE,IAAI;QAChC,2BAA2B,EAAE,IAAI;QACjC,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,KAAK;QACrB,wBAAwB,EAAE,IAAI;KAC/B;IACD;QACE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/solo/contract.ts"],"names":[],"mappings":"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"}
|
package/dist/solo/hub-manager.js
CHANGED
|
@@ -216,7 +216,7 @@ export async function ensureHubBinary(opts) {
|
|
|
216
216
|
* `namespaces: HUB_NAMESPACES` is the production namespace table (contract-
|
|
217
217
|
* frozen, drift-guarded in hub-manager.test.ts against centrifugo/config.json)
|
|
218
218
|
* — WITHOUT it every namespaced channel (bridges:presence#solo, commands:rpc
|
|
219
|
-
* #solo,
|
|
219
|
+
* #solo, sessions:*, terminal:*, terminal-input:*,
|
|
220
220
|
* events:*) is rejected by Centrifugo with code 102 "unknown channel", which
|
|
221
221
|
* is why the panel could never see the bridge or create sessions in solo
|
|
222
222
|
* mode. `allow_user_limited_channels: true` is required alongside it because
|
package/dist/terminal-pump.d.ts
CHANGED
|
@@ -24,8 +24,7 @@ export interface TerminalPumpDeps {
|
|
|
24
24
|
/**
|
|
25
25
|
* Terminal output pump: buffers runner PTY output per session (coalescing into
|
|
26
26
|
* ≤16ms / ≤32KB flushes to the store + transports), and owns the runner
|
|
27
|
-
* lifecycle handlers ('complete'/'error') that persist final
|
|
28
|
-
* statuses — the loop scheduler reads the statuses this module produces.
|
|
27
|
+
* lifecycle handlers ('complete'/'error') that persist final session statuses.
|
|
29
28
|
*/
|
|
30
29
|
export declare class TerminalPump {
|
|
31
30
|
private readonly deps;
|
package/dist/terminal-pump.js
CHANGED
|
@@ -18,8 +18,7 @@ function sanitizeTerminalTail(raw) {
|
|
|
18
18
|
/**
|
|
19
19
|
* Terminal output pump: buffers runner PTY output per session (coalescing into
|
|
20
20
|
* ≤16ms / ≤32KB flushes to the store + transports), and owns the runner
|
|
21
|
-
* lifecycle handlers ('complete'/'error') that persist final
|
|
22
|
-
* statuses — the loop scheduler reads the statuses this module produces.
|
|
21
|
+
* lifecycle handlers ('complete'/'error') that persist final session statuses.
|
|
23
22
|
*/
|
|
24
23
|
export class TerminalPump {
|
|
25
24
|
deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-pump.js","sourceRoot":"","sources":["../src/terminal-pump.ts"],"names":[],"mappings":"AA0BA,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAC7B,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,6EAA6E;AAC7E,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,oDAAoD;AACpD,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,gDAAgD;AAChD,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEnC,8EAA8E;AAC9E,MAAM,cAAc,GAAG,IAAI,MAAM,CAC/B,oFAAoF,EACpF,GAAG,CACJ,CAAC;AAEF,oFAAoF;AACpF,SAAS,oBAAoB,CAAC,GAAW;IACvC,OAAO,GAAG;SACP,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,2BAA2B,EAAE,GAAG,CAAC;SACzC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"terminal-pump.js","sourceRoot":"","sources":["../src/terminal-pump.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
import type {
|
|
1
|
+
export type { ShellType } from './harness-registry.js';
|
|
2
|
+
import type { ShellType } from './harness-registry.js';
|
|
3
3
|
export type SessionRuntime = 'tmux' | 'direct';
|
|
4
4
|
/** Per-model token breakdown within a session. */
|
|
5
5
|
export interface ModelUsage {
|
|
@@ -52,91 +52,6 @@ export type SessionStatus = 'pending' | 'running' | 'completed' | 'error';
|
|
|
52
52
|
export interface ArchivedSession extends Session {
|
|
53
53
|
removedAt: string;
|
|
54
54
|
}
|
|
55
|
-
export type LoopRunStatus = 'ok' | 'error' | 'running' | 'skipped';
|
|
56
|
-
export type LoopSchedule = {
|
|
57
|
-
kind: 'interval';
|
|
58
|
-
everyMs: number;
|
|
59
|
-
} | {
|
|
60
|
-
kind: 'cron';
|
|
61
|
-
expression: string;
|
|
62
|
-
tz?: string;
|
|
63
|
-
};
|
|
64
|
-
export interface LoopFlight {
|
|
65
|
-
command: string;
|
|
66
|
-
timeoutMs?: number;
|
|
67
|
-
}
|
|
68
|
-
export interface LoopPostflight {
|
|
69
|
-
command: string;
|
|
70
|
-
timeoutMs?: number;
|
|
71
|
-
/** Run postflight even when the fire was preflight-skipped. Default false. */
|
|
72
|
-
runOnSkip?: boolean;
|
|
73
|
-
}
|
|
74
|
-
export interface LoopRetention {
|
|
75
|
-
/** Keep newest N run-sessions; prune older ones. null = keep all. Default 10. */
|
|
76
|
-
autoClearAfterRuns: number | null;
|
|
77
|
-
}
|
|
78
|
-
/** Client-authored fields (create/edit form). */
|
|
79
|
-
export interface LoopDraft {
|
|
80
|
-
name: string;
|
|
81
|
-
bridgeId: string;
|
|
82
|
-
schedule: LoopSchedule;
|
|
83
|
-
harness: LoopHarness;
|
|
84
|
-
workdir?: string;
|
|
85
|
-
task: string;
|
|
86
|
-
model?: string;
|
|
87
|
-
enabled: boolean;
|
|
88
|
-
overlapPolicy: 'skip' | 'allow';
|
|
89
|
-
retention: LoopRetention;
|
|
90
|
-
preflight?: LoopFlight;
|
|
91
|
-
postflight?: LoopPostflight;
|
|
92
|
-
/** Optional deterministic backstop: force-stop + mark 'error' if a flight runs longer. */
|
|
93
|
-
maxRuntimeMs?: number;
|
|
94
|
-
/** Optional free-text label the UI uses to fold loops into groups. Trimmed on
|
|
95
|
-
* write; blank/whitespace-only is normalized to absent (undefined). */
|
|
96
|
-
group?: string;
|
|
97
|
-
}
|
|
98
|
-
/** Full server-authoritative record (LoopDraft + runtime state). */
|
|
99
|
-
export interface Loop extends LoopDraft {
|
|
100
|
-
id: string;
|
|
101
|
-
createdAt: string;
|
|
102
|
-
updatedAt: string;
|
|
103
|
-
lastRunAt?: string;
|
|
104
|
-
nextRunAt?: string;
|
|
105
|
-
lastStatus?: LoopRunStatus;
|
|
106
|
-
lastSessionId?: string;
|
|
107
|
-
runCount: number;
|
|
108
|
-
skipCount: number;
|
|
109
|
-
lastSkipAt?: string;
|
|
110
|
-
lastSkipReason?: string;
|
|
111
|
-
/** Transient manual-fire flag; set by run_loop_now, cleared on the next tick. */
|
|
112
|
-
runNowRequested?: boolean;
|
|
113
|
-
}
|
|
114
|
-
/** Legacy shape: older bridges exposed loop runs as sessions tagged with loopId. */
|
|
115
|
-
export type LoopRun = Session & {
|
|
116
|
-
loopId: string;
|
|
117
|
-
};
|
|
118
|
-
export interface LoopRunRecord {
|
|
119
|
-
/** Stable UI id. For spawned runs this is the session id; skipped runs mint their own id. */
|
|
120
|
-
id: string;
|
|
121
|
-
loopId: string;
|
|
122
|
-
bridgeId: string;
|
|
123
|
-
sessionId?: string;
|
|
124
|
-
name: string;
|
|
125
|
-
status: LoopRunStatus;
|
|
126
|
-
startedAt: string;
|
|
127
|
-
updatedAt: string;
|
|
128
|
-
finishedAt?: string;
|
|
129
|
-
durationMs?: number;
|
|
130
|
-
harness?: LoopHarness;
|
|
131
|
-
workdir?: string;
|
|
132
|
-
task?: string;
|
|
133
|
-
model?: string;
|
|
134
|
-
sessionStatus?: SessionStatus;
|
|
135
|
-
errorReason?: string;
|
|
136
|
-
logTail?: string;
|
|
137
|
-
logBytes?: number;
|
|
138
|
-
logTruncated?: boolean;
|
|
139
|
-
}
|
|
140
55
|
/** Inter-agent mail stored in <dataDir>/sessions/<id>/inbox.jsonl. */
|
|
141
56
|
export interface MailMessage {
|
|
142
57
|
id: string;
|
|
@@ -164,7 +79,7 @@ export interface Command {
|
|
|
164
79
|
payload: CommandPayload;
|
|
165
80
|
requestId: string;
|
|
166
81
|
}
|
|
167
|
-
export type CommandType = 'mcp_request' | 'create_session' | 'stop_session' | 'list_sessions' | 'get_history' | 'retry_session' | 'send_message' | 'rename_session' | 'remove_session' | 'bridge_exec' | 'clear_terminal' | 'update_session_parent' | 'get_session_usage' | 'get_sessions_usage'
|
|
82
|
+
export type CommandType = 'mcp_request' | 'create_session' | 'stop_session' | 'list_sessions' | 'get_history' | 'retry_session' | 'send_message' | 'rename_session' | 'remove_session' | 'bridge_exec' | 'clear_terminal' | 'update_session_parent' | 'get_session_usage' | 'get_sessions_usage';
|
|
168
83
|
export interface CreateSessionPayload {
|
|
169
84
|
command: string;
|
|
170
85
|
prompt?: string;
|
|
@@ -225,30 +140,7 @@ export interface GetSessionsUsagePayload {
|
|
|
225
140
|
sessionIds: string[];
|
|
226
141
|
bridgeId?: string;
|
|
227
142
|
}
|
|
228
|
-
export
|
|
229
|
-
bridgeId: string;
|
|
230
|
-
}
|
|
231
|
-
export interface ListLoopsPayload {
|
|
232
|
-
bridgeId?: string;
|
|
233
|
-
}
|
|
234
|
-
export interface UpdateLoopPayload {
|
|
235
|
-
bridgeId: string;
|
|
236
|
-
loopId: string;
|
|
237
|
-
patch: Partial<LoopDraft>;
|
|
238
|
-
}
|
|
239
|
-
export interface DeleteLoopPayload {
|
|
240
|
-
bridgeId: string;
|
|
241
|
-
loopId: string;
|
|
242
|
-
}
|
|
243
|
-
export interface RunLoopNowPayload {
|
|
244
|
-
bridgeId: string;
|
|
245
|
-
loopId: string;
|
|
246
|
-
}
|
|
247
|
-
export interface GetLoopRunsPayload {
|
|
248
|
-
bridgeId?: string;
|
|
249
|
-
loopId: string;
|
|
250
|
-
}
|
|
251
|
-
export type CommandPayload = CreateSessionPayload | StopSessionPayload | GetHistoryPayload | RenameSessionPayload | RemoveSessionPayload | BridgeExecPayload | ClearTerminalPayload | UpdateSessionParentPayload | GetSessionUsagePayload | GetSessionsUsagePayload | CreateLoopPayload | ListLoopsPayload | UpdateLoopPayload | DeleteLoopPayload | RunLoopNowPayload | GetLoopRunsPayload | Record<string, unknown>;
|
|
143
|
+
export type CommandPayload = CreateSessionPayload | StopSessionPayload | GetHistoryPayload | RenameSessionPayload | RemoveSessionPayload | BridgeExecPayload | ClearTerminalPayload | UpdateSessionParentPayload | GetSessionUsagePayload | GetSessionsUsagePayload | Record<string, unknown>;
|
|
252
144
|
export interface CommandResponse {
|
|
253
145
|
requestId: string;
|
|
254
146
|
success: boolean;
|