ftown-bridge 0.11.2 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/centrifugo-client.d.ts +4 -1
  2. package/dist/centrifugo-client.js +27 -0
  3. package/dist/centrifugo-client.js.map +1 -1
  4. package/dist/codex-installer.js +8 -2
  5. package/dist/codex-installer.js.map +1 -1
  6. package/dist/create-ftown-session.d.ts +1 -0
  7. package/dist/create-ftown-session.js +4 -3
  8. package/dist/create-ftown-session.js.map +1 -1
  9. package/dist/ftown-sessions-cli.js +334 -0
  10. package/dist/ftown-sessions-cli.js.map +1 -1
  11. package/dist/index.js +167 -11
  12. package/dist/index.js.map +1 -1
  13. package/dist/install-ftown-skill.d.ts +2 -0
  14. package/dist/install-ftown-skill.js +39 -0
  15. package/dist/install-ftown-skill.js.map +1 -1
  16. package/dist/local-api-server.d.ts +10 -0
  17. package/dist/local-api-server.js +147 -0
  18. package/dist/local-api-server.js.map +1 -1
  19. package/dist/loop-run-store.d.ts +9 -0
  20. package/dist/loop-run-store.js +159 -0
  21. package/dist/loop-run-store.js.map +1 -0
  22. package/dist/loop-schedule.d.ts +18 -0
  23. package/dist/loop-schedule.js +35 -0
  24. package/dist/loop-schedule.js.map +1 -0
  25. package/dist/loop-scheduler.d.ts +148 -0
  26. package/dist/loop-scheduler.js +534 -0
  27. package/dist/loop-scheduler.js.map +1 -0
  28. package/dist/loop-store.d.ts +36 -0
  29. package/dist/loop-store.js +128 -0
  30. package/dist/loop-store.js.map +1 -0
  31. package/dist/loop-validation.d.ts +14 -0
  32. package/dist/loop-validation.js +95 -0
  33. package/dist/loop-validation.js.map +1 -0
  34. package/dist/types.d.ts +107 -2
  35. package/package.json +2 -1
  36. package/skills/ftown/SKILL.md +48 -0
  37. package/skills/ftown/agents/openai.yaml +4 -0
  38. package/skills/ftown/references/loops.md +88 -0
  39. package/skills/{ftown-orchestrator/SKILL.md → ftown/references/orchestrator.md} +22 -13
  40. package/skills/{ftown-sessions/SKILL.md → ftown/references/sessions.md} +22 -16
  41. package/skills/{ftown-workflows/SKILL.md → ftown/references/workflows.md} +13 -20
  42. package/skills/ftown/scripts/ftown +4 -0
  43. package/skills/ftown-sessions/scripts/ftown-sessions +0 -4
  44. package/skills/ftown-workflows/scripts/ftown-workflows +0 -4
  45. /package/skills/{ftown-workflows → ftown}/scripts/example.flow.mjs +0 -0
@@ -1,4 +1,4 @@
1
- import type { Command, CommandResponse, Session } from './types.js';
1
+ import type { Command, CommandResponse, Loop, Session } from './types.js';
2
2
  type TerminalInputHandler = (sessionId: string, data: string) => void;
3
3
  type TerminalResizeHandler = (sessionId: string, cols: number, rows: number) => void;
4
4
  type TerminalInitHandler = (sessionId: string) => void;
@@ -16,6 +16,9 @@ export declare class CentrifugoClient {
16
16
  disconnect(): void;
17
17
  subscribeToSessions(userId: string): void;
18
18
  publishSessionUpdate(userId: string, session: Session): Promise<void>;
19
+ subscribeToLoops(userId: string): void;
20
+ publishLoopUpdate(userId: string, loop: Loop): Promise<void>;
21
+ publishLoopRemoved(userId: string, loopId: string): Promise<void>;
19
22
  publishTerminalData(userId: string, sessionId: string, data: string): Promise<void>;
20
23
  subscribeToTerminalInput(userId: string, sessionId: string, onInput: TerminalInputHandler, onResize: TerminalResizeHandler, onInit?: TerminalInitHandler): void;
21
24
  subscribeToCommands(userId: string, handler: CommandHandler): void;
@@ -103,6 +103,33 @@ export class CentrifugoClient {
103
103
  throw err;
104
104
  }
105
105
  }
106
+ subscribeToLoops(userId) {
107
+ const channel = `loops:updates#${userId}`;
108
+ const sub = this.client.newSubscription(channel);
109
+ sub.subscribe();
110
+ this.subscriptions.set(channel, sub);
111
+ }
112
+ async publishLoopUpdate(userId, loop) {
113
+ const channel = `loops:updates#${userId}`;
114
+ // Loop carries no secret env-like field, so — unlike sessions — nothing is stripped.
115
+ try {
116
+ await this.client.publish(channel, { type: 'loop_update', loop, timestamp: new Date().toISOString() });
117
+ }
118
+ catch (err) {
119
+ console.error(`[Centrifugo] Failed to publish loop update to ${channel}:`, err);
120
+ throw err;
121
+ }
122
+ }
123
+ async publishLoopRemoved(userId, loopId) {
124
+ const channel = `loops:updates#${userId}`;
125
+ try {
126
+ await this.client.publish(channel, { type: 'loop_removed', loopId, timestamp: new Date().toISOString() });
127
+ }
128
+ catch (err) {
129
+ console.error(`[Centrifugo] Failed to publish loop removed to ${channel}:`, err);
130
+ throw err;
131
+ }
132
+ }
106
133
  async publishTerminalData(userId, sessionId, data) {
107
134
  const channel = `terminal:${sessionId}#${userId}`;
108
135
  if (!this.subscriptions.has(channel)) {
@@ -1 +1 @@
1
- {"version":3,"file":"centrifugo-client.js","sourceRoot":"","sources":["../src/centrifugo-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"centrifugo-client.js","sourceRoot":"","sources":["../src/centrifugo-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,SAAS,MAAM,IAAI,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAQlD,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,IAA6B;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAEpD,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,iBAAiB,GAAG,QAAQ,GAAG,GAAG,CAAC;QACxD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,CAAC;YACzC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,eAAe,EAAE,CAAC;IACxD,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,iBAAiB,EAAE,CAAC;YAC3C,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,gBAAgB;IACV,MAAM,CAAa;IACnB,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IACrD,WAAW,CAA8B;IAClD,YAAY,GAAG,KAAK,CAAC;IAE7B,YACE,GAAW,EACX,KAAa,EACb,QAA+B,EAC/B,IAAmD;QAEnD,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE;YAChC,KAAK;YACL,QAAQ;YACR,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE;YAClC,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YAC1D,yEAAyE;YACzE,0EAA0E;YAC1E,0EAA0E;YAC1E,kDAAkD;YAClD,IAAI,IAAI,CAAC,YAAY;gBAAE,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;YACrC,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YAChF,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;gBAChF,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,UAAU;QACR,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAChD,GAAG,CAAC,WAAW,EAAE,CAAC;YAClB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED,mBAAmB,CAAC,MAAc;QAChC,MAAM,OAAO,GAAG,oBAAoB,MAAM,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,MAAc,EAAE,OAAgB;QACzD,MAAM,OAAO,GAAG,oBAAoB,MAAM,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;gBACjC,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;gBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YACnF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,MAAc;QAC7B,MAAM,OAAO,GAAG,iBAAiB,MAAM,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACjD,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,IAAU;QAChD,MAAM,OAAO,GAAG,iBAAiB,MAAM,EAAE,CAAC;QAC1C,qFAAqF;QACrF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACzG,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iDAAiD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YAChF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,MAAc;QACrD,MAAM,OAAO,GAAG,iBAAiB,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC5G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kDAAkD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YACjF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,SAAiB,EAAE,IAAY;QACvE,MAAM,OAAO,GAAG,YAAY,SAAS,IAAI,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtC,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,mDAAmD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,wBAAwB,CACtB,MAAc,EACd,SAAiB,EACjB,OAA6B,EAC7B,QAA+B,EAC/B,MAA4B;QAE5B,MAAM,OAAO,GAAG,kBAAkB,SAAS,IAAI,MAAM,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEjD,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,GAAuB,EAAE,EAAE;YAChD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAqE,CAAC;YACtF,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACnD,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9E,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE,CAAC;gBAClC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,mBAAmB,CAAC,MAAc,EAAE,OAAuB;QACzD,MAAM,OAAO,GAAG,gBAAgB,MAAM,EAAE,CAAC;QAEzC,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,WAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAEjD,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,GAAuB,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+B,CAAC;YACjD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,IAA0B,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5B,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,iBAAiB,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,CAAC,KAAK,CAAC,sCAAsC,OAAO,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,kBAAkB,CAAC,MAAc,EAAE,QAAgB;QACjD,MAAM,OAAO,GAAG,oBAAoB,MAAM,EAAE,CAAC;QAE7C,MAAM,YAAY,GAAuB;YACvC,QAAQ;YACR,QAAQ,EAAE,QAAQ,EAAE;YACpB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;YAC/C,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,0CAA0C,QAAQ,KAAK,YAAY,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC/F,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAc,EAAE,SAAiB,EAAE,GAAW;QACxE,MAAM,OAAO,GAAG,YAAY,SAAS,IAAI,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;gBACjC,IAAI,EAAE,aAAa;gBACnB,GAAG;gBACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,qDAAqD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,SAAiB,EAAE,KAA8B;QACtF,MAAM,OAAO,GAAG,UAAU,SAAS,IAAI,MAAM,EAAE,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACrC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtC,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gDAAgD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAc,EAAE,QAAyB;QACpE,MAAM,OAAO,GAAG,gBAAgB,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC;gBAC9C,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE,QAA8C;gBACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sDAAsD,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;YACrF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -11,6 +11,7 @@ const execAsync = promisify(exec);
11
11
  * protocol are Claude-compatible. Stop/UserPromptSubmit must omit "matcher".
12
12
  */
13
13
  const CODEX_HOOK_EVENTS = ['Stop', 'UserPromptSubmit', 'SessionStart'];
14
+ const CODEX_NOTIFY_TIMEOUT_SECONDS = 10;
14
15
  function isObject(value) {
15
16
  return typeof value === 'object' && value !== null && !Array.isArray(value);
16
17
  }
@@ -108,11 +109,16 @@ export function ensureCodexHooks(harnessBinPath, notifyScriptPath = CANONICAL_NO
108
109
  });
109
110
  upsertCodexHookEntry(hooks, event, {
110
111
  matches: isFtownNotifyCommand,
111
- desired: { type: 'command', command: notifyScriptPath, async: true },
112
+ desired: { type: 'command', command: notifyScriptPath, timeout: CODEX_NOTIFY_TIMEOUT_SECONDS },
112
113
  repair: (h) => {
113
- if (h.command === notifyScriptPath)
114
+ if (h.command === notifyScriptPath
115
+ && h.timeout === CODEX_NOTIFY_TIMEOUT_SECONDS
116
+ && h.async === undefined) {
114
117
  return false;
118
+ }
115
119
  h.command = notifyScriptPath;
120
+ h.timeout = CODEX_NOTIFY_TIMEOUT_SECONDS;
121
+ delete h.async;
116
122
  return true;
117
123
  },
118
124
  counters,
@@ -1 +1 @@
1
- {"version":3,"file":"codex-installer.js","sourceRoot":"","sources":["../src/codex-installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-installer.js","sourceRoot":"","sources":["../src/codex-installer.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ export interface CreateFtownSessionInput {
30
30
  orchestrator?: boolean;
31
31
  suppressBriefing?: boolean;
32
32
  createMissingWorkingDir?: boolean;
33
+ loopId?: string;
33
34
  }
34
35
  export declare function resolveParentSessionId(store: SessionStore, parentSessionId: string | undefined): Promise<string | undefined>;
35
36
  interface ChildBriefingParams {
@@ -27,9 +27,9 @@ export function buildChildBriefing(params) {
27
27
  /** Compact pointer injected into an orchestrator agent's first input. */
28
28
  export function buildOrchestratorBriefing(params) {
29
29
  return (`[ftown] You are an ORCHESTRATOR running inside ftown session '${params.sessionName}' ` +
30
- `(${params.sessionId}). Use the 'ftown-orchestrator' skill (installed at ` +
31
- `~/.ftown/skills/ftown-orchestrator, linked from ~/.agents/skills and ~/.claude/skills — ` +
32
- `read its SKILL.md if not auto-loaded) to spawn and coordinate worker agent sessions ` +
30
+ `(${params.sessionId}). Use the 'ftown' skill (installed at ` +
31
+ `~/.ftown/skills/ftown, linked from ~/.agents/skills and ~/.claude/skills — ` +
32
+ `read its SKILL.md and references/orchestrator.md if not auto-loaded) to spawn and coordinate worker agent sessions ` +
33
33
  `via ~/.ftown/ftown-sessions. Children you spawn with --parent report back via mail — ` +
34
34
  `their messages arrive automatically as [ftown mail] context at your turn boundaries; ` +
35
35
  `check on demand with ftown-harness mail read.`);
@@ -194,6 +194,7 @@ export async function createFtownSession(deps, input) {
194
194
  env: sessionEnv,
195
195
  parentSessionId,
196
196
  runtime: deps.runner.getPreferredRuntime(),
197
+ loopId: input.loopId,
197
198
  };
198
199
  await deps.store.saveSession(session);
199
200
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"create-ftown-session.js","sourceRoot":"","sources":["../src/create-ftown-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-ftown-session.js","sourceRoot":"","sources":["../src/create-ftown-session.ts"],"names":[],"mappings":"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"}
@@ -83,6 +83,197 @@ function flag(args, name) {
83
83
  function hasFlag(args, name) {
84
84
  return args.includes(name);
85
85
  }
86
+ function parseDurationMs(raw, label) {
87
+ if (raw === undefined)
88
+ return undefined;
89
+ const trimmed = raw.trim().toLowerCase();
90
+ const match = trimmed.match(/^(\d+(?:\.\d+)?)(ms|s|m|h|d)?$/);
91
+ if (!match) {
92
+ throw new Error(`${label} must be a duration like 30s, 5m, 2h, or 1000ms`);
93
+ }
94
+ const value = Number(match[1]);
95
+ if (!Number.isFinite(value) || value < 0) {
96
+ throw new Error(`${label} must be a non-negative duration`);
97
+ }
98
+ const unit = match[2] ?? 'ms';
99
+ const factor = {
100
+ ms: 1,
101
+ s: 1000,
102
+ m: 60_000,
103
+ h: 3_600_000,
104
+ d: 86_400_000,
105
+ };
106
+ return Math.round(value * factor[unit]);
107
+ }
108
+ function parseNonNegativeInt(raw, label) {
109
+ if (raw === undefined)
110
+ return undefined;
111
+ const value = Number(raw);
112
+ if (!Number.isInteger(value) || value < 0) {
113
+ throw new Error(`${label} must be a non-negative integer`);
114
+ }
115
+ return value;
116
+ }
117
+ function parseRetention(raw) {
118
+ if (raw === undefined)
119
+ return 10;
120
+ const trimmed = raw.trim().toLowerCase();
121
+ if (trimmed === 'all' || trimmed === 'none' || trimmed === 'null')
122
+ return null;
123
+ const value = parseNonNegativeInt(trimmed, '--retention');
124
+ return value ?? 10;
125
+ }
126
+ function parseLoopSchedule(args, required) {
127
+ const every = flag(args, '--every');
128
+ const cron = flag(args, '--cron');
129
+ if (every && cron)
130
+ throw new Error('Use only one of --every or --cron');
131
+ if (every) {
132
+ const everyMs = parseDurationMs(every, '--every');
133
+ if (!everyMs || everyMs < 1000)
134
+ throw new Error('--every must be at least 1s');
135
+ return { kind: 'interval', everyMs };
136
+ }
137
+ if (cron) {
138
+ const schedule = { kind: 'cron', expression: cron };
139
+ const tz = flag(args, '--tz');
140
+ if (tz)
141
+ schedule.tz = tz;
142
+ return schedule;
143
+ }
144
+ if (required)
145
+ throw new Error('Missing schedule: provide --every <duration> or --cron <expr>');
146
+ return undefined;
147
+ }
148
+ function parseLoopHarness(raw) {
149
+ const harness = (raw ?? 'claude');
150
+ if (!['claude', 'cursor', 'codex', 'opencode', 'shell'].includes(harness)) {
151
+ throw new Error(`Invalid --shell "${raw}"`);
152
+ }
153
+ return harness;
154
+ }
155
+ function parseLoopCreate(args) {
156
+ const name = flag(args, '--name')?.trim();
157
+ const task = (flag(args, '--task') ?? flag(args, '--prompt'))?.trim();
158
+ if (!name)
159
+ throw new Error('Missing --name');
160
+ if (!task)
161
+ throw new Error('Missing --task');
162
+ const preflightCommand = flag(args, '--preflight')?.trim();
163
+ const postflightCommand = flag(args, '--postflight')?.trim();
164
+ const maxRuntime = parseDurationMs(flag(args, '--max-runtime'), '--max-runtime') ??
165
+ parseDurationMs(flag(args, '--max-runtime-ms'), '--max-runtime-ms');
166
+ return {
167
+ name,
168
+ schedule: parseLoopSchedule(args, true),
169
+ harness: parseLoopHarness(flag(args, '--shell') ?? flag(args, '--harness')),
170
+ workdir: flag(args, '--workdir'),
171
+ task,
172
+ model: flag(args, '--model'),
173
+ enabled: !hasFlag(args, '--disabled'),
174
+ overlapPolicy: hasFlag(args, '--allow-overlap') ? 'allow' : 'skip',
175
+ retention: { autoClearAfterRuns: parseRetention(flag(args, '--retention')) },
176
+ preflight: preflightCommand
177
+ ? {
178
+ command: preflightCommand,
179
+ timeoutMs: parseDurationMs(flag(args, '--preflight-timeout'), '--preflight-timeout') ??
180
+ parseDurationMs(flag(args, '--preflight-timeout-ms'), '--preflight-timeout-ms'),
181
+ }
182
+ : undefined,
183
+ postflight: postflightCommand
184
+ ? {
185
+ command: postflightCommand,
186
+ timeoutMs: parseDurationMs(flag(args, '--postflight-timeout'), '--postflight-timeout') ??
187
+ parseDurationMs(flag(args, '--postflight-timeout-ms'), '--postflight-timeout-ms'),
188
+ runOnSkip: hasFlag(args, '--postflight-on-skip') || undefined,
189
+ }
190
+ : undefined,
191
+ maxRuntimeMs: maxRuntime,
192
+ };
193
+ }
194
+ function parseLoopPatch(args) {
195
+ const patch = {};
196
+ const name = flag(args, '--name')?.trim();
197
+ const task = (flag(args, '--task') ?? flag(args, '--prompt'))?.trim();
198
+ const workdir = flag(args, '--workdir');
199
+ const model = flag(args, '--model');
200
+ const shell = flag(args, '--shell') ?? flag(args, '--harness');
201
+ const retention = flag(args, '--retention');
202
+ const schedule = parseLoopSchedule(args, false);
203
+ const maxRuntime = flag(args, '--max-runtime') ?? flag(args, '--max-runtime-ms');
204
+ if (name !== undefined)
205
+ patch.name = name;
206
+ if (task !== undefined)
207
+ patch.task = task;
208
+ if (workdir !== undefined)
209
+ patch.workdir = workdir || undefined;
210
+ if (model !== undefined)
211
+ patch.model = model || undefined;
212
+ if (shell !== undefined)
213
+ patch.harness = parseLoopHarness(shell);
214
+ if (schedule)
215
+ patch.schedule = schedule;
216
+ if (retention !== undefined)
217
+ patch.retention = { autoClearAfterRuns: parseRetention(retention) };
218
+ if (hasFlag(args, '--enabled'))
219
+ patch.enabled = true;
220
+ if (hasFlag(args, '--disabled'))
221
+ patch.enabled = false;
222
+ if (hasFlag(args, '--allow-overlap'))
223
+ patch.overlapPolicy = 'allow';
224
+ if (hasFlag(args, '--skip-overlap'))
225
+ patch.overlapPolicy = 'skip';
226
+ if (maxRuntime !== undefined)
227
+ patch.maxRuntimeMs = parseDurationMs(maxRuntime, '--max-runtime');
228
+ const preflightCommand = flag(args, '--preflight');
229
+ if (preflightCommand !== undefined) {
230
+ patch.preflight = preflightCommand.trim()
231
+ ? {
232
+ command: preflightCommand.trim(),
233
+ timeoutMs: parseDurationMs(flag(args, '--preflight-timeout'), '--preflight-timeout') ??
234
+ parseDurationMs(flag(args, '--preflight-timeout-ms'), '--preflight-timeout-ms'),
235
+ }
236
+ : undefined;
237
+ }
238
+ const postflightCommand = flag(args, '--postflight');
239
+ if (postflightCommand !== undefined) {
240
+ patch.postflight = postflightCommand.trim()
241
+ ? {
242
+ command: postflightCommand.trim(),
243
+ timeoutMs: parseDurationMs(flag(args, '--postflight-timeout'), '--postflight-timeout') ??
244
+ parseDurationMs(flag(args, '--postflight-timeout-ms'), '--postflight-timeout-ms'),
245
+ runOnSkip: hasFlag(args, '--postflight-on-skip') || undefined,
246
+ }
247
+ : undefined;
248
+ }
249
+ if (Object.keys(patch).length === 0)
250
+ throw new Error('No loop fields to update');
251
+ return patch;
252
+ }
253
+ function formatDuration(ms) {
254
+ if (ms % 86_400_000 === 0)
255
+ return `${ms / 86_400_000}d`;
256
+ if (ms % 3_600_000 === 0)
257
+ return `${ms / 3_600_000}h`;
258
+ if (ms % 60_000 === 0)
259
+ return `${ms / 60_000}m`;
260
+ if (ms % 1000 === 0)
261
+ return `${ms / 1000}s`;
262
+ return `${ms}ms`;
263
+ }
264
+ function describeSchedule(schedule) {
265
+ if (schedule.kind === 'interval')
266
+ return `every ${formatDuration(schedule.everyMs)}`;
267
+ return schedule.tz ? `cron ${schedule.expression} (${schedule.tz})` : `cron ${schedule.expression}`;
268
+ }
269
+ function formatTimestamp(ts) {
270
+ if (!ts)
271
+ return '-';
272
+ const date = new Date(ts);
273
+ if (Number.isNaN(date.getTime()))
274
+ return ts;
275
+ return date.toISOString();
276
+ }
86
277
  /** Positional args, skipping flags and the values of value-taking flags. */
87
278
  function positionals(args, valueFlags) {
88
279
  const out = [];
@@ -117,6 +308,14 @@ Commands:
117
308
  remove <session-id> Stop and remove a session (archived as a tombstone)
118
309
  archive List archived (removed) sessions
119
310
  revive <session-id> Recreate a removed session from its tombstone
311
+ loops | loop list List scheduled loops
312
+ loop create [options] Create a scheduled loop on this bridge
313
+ loop get <loop-id> Loop metadata
314
+ loop update <loop-id> [opts] Update loop fields
315
+ loop run <loop-id> Request an immediate run
316
+ loop pause|resume <loop-id> Disable or enable a loop
317
+ loop delete <loop-id> Delete a loop, stopping any in-flight run
318
+ loop runs <loop-id> List run sessions for a loop
120
319
 
121
320
  Tell targets (one of):
122
321
  <session-id> Explicit target session id
@@ -155,6 +354,25 @@ Screen/grep options:
155
354
  Grep options:
156
355
  --pattern <regex> Required for grep
157
356
 
357
+ Loop create/update options:
358
+ --name <label> Loop name
359
+ --task <text> Prompt run each time (alias: --prompt)
360
+ --every <duration> Interval schedule, e.g. 30s, 5m, 2h
361
+ --cron <expr> Cron schedule, e.g. "*/15 * * * *"
362
+ --tz <iana-zone> Cron timezone
363
+ --shell <type> claude | cursor | codex | opencode | shell (default: claude)
364
+ --workdir <path> Working directory
365
+ --model <name> Agent model
366
+ --disabled Create/update as disabled
367
+ --enabled Update as enabled
368
+ --allow-overlap Allow concurrent runs (default is skip)
369
+ --skip-overlap Update back to skip overlap
370
+ --retention <n|all> Keep newest N runs, or all (default: 10)
371
+ --preflight <cmd> Shell guard; non-zero skips the run
372
+ --postflight <cmd> Shell hook after each run
373
+ --postflight-on-skip Also run postflight after preflight skip
374
+ --max-runtime <duration> Force-stop a run after duration
375
+
158
376
  Reads ~/.ftown/bridge.json (ftown-bridge must be running).`);
159
377
  }
160
378
  async function main() {
@@ -399,6 +617,98 @@ async function main() {
399
617
  console.log(jsonOut ? JSON.stringify(data, null, 2) : formatCreated(data));
400
618
  break;
401
619
  }
620
+ case 'loops':
621
+ case 'loop-list': {
622
+ const { data } = await api('GET', '/api/loops');
623
+ console.log(jsonOut ? JSON.stringify(data, null, 2) : formatLoopList(data));
624
+ break;
625
+ }
626
+ case 'loop': {
627
+ const sub = rest[0];
628
+ const loopArgs = rest.slice(1);
629
+ if (!sub || sub === 'help' || sub === '--help' || sub === '-h') {
630
+ usage();
631
+ break;
632
+ }
633
+ switch (sub) {
634
+ case 'list': {
635
+ const { data } = await api('GET', '/api/loops');
636
+ console.log(jsonOut ? JSON.stringify(data, null, 2) : formatLoopList(data));
637
+ break;
638
+ }
639
+ case 'create': {
640
+ const body = parseLoopCreate(loopArgs);
641
+ const { data } = await api('POST', '/api/loops', body);
642
+ console.log(jsonOut ? JSON.stringify(data, null, 2) : formatLoopCreated(data));
643
+ break;
644
+ }
645
+ case 'get': {
646
+ const id = loopArgs.find((a) => !a.startsWith('--'));
647
+ if (!id)
648
+ throw new Error('Missing loop-id');
649
+ const { data } = await api('GET', `/api/loops/${id}`);
650
+ console.log(JSON.stringify(data, null, 2));
651
+ break;
652
+ }
653
+ case 'update': {
654
+ const id = loopArgs.find((a) => !a.startsWith('--'));
655
+ if (!id)
656
+ throw new Error('Missing loop-id');
657
+ const patch = parseLoopPatch(loopArgs.slice(1));
658
+ const { data } = await api('PATCH', `/api/loops/${id}`, patch);
659
+ console.log(jsonOut ? JSON.stringify(data, null, 2) : formatLoopCreated(data));
660
+ break;
661
+ }
662
+ case 'run':
663
+ case 'run-now': {
664
+ const id = loopArgs.find((a) => !a.startsWith('--'));
665
+ if (!id)
666
+ throw new Error('Missing loop-id');
667
+ const { data } = await api('POST', `/api/loops/${id}/run-now`);
668
+ console.log(jsonOut ? JSON.stringify(data, null, 2) : formatLoopRunNow(data));
669
+ break;
670
+ }
671
+ case 'pause':
672
+ case 'disable': {
673
+ const id = loopArgs.find((a) => !a.startsWith('--'));
674
+ if (!id)
675
+ throw new Error('Missing loop-id');
676
+ const { data } = await api('PATCH', `/api/loops/${id}`, { enabled: false });
677
+ console.log(jsonOut ? JSON.stringify(data, null, 2) : formatLoopCreated(data));
678
+ break;
679
+ }
680
+ case 'resume':
681
+ case 'enable': {
682
+ const id = loopArgs.find((a) => !a.startsWith('--'));
683
+ if (!id)
684
+ throw new Error('Missing loop-id');
685
+ const { data } = await api('PATCH', `/api/loops/${id}`, { enabled: true });
686
+ console.log(jsonOut ? JSON.stringify(data, null, 2) : formatLoopCreated(data));
687
+ break;
688
+ }
689
+ case 'delete':
690
+ case 'rm': {
691
+ const id = loopArgs.find((a) => !a.startsWith('--'));
692
+ if (!id)
693
+ throw new Error('Missing loop-id');
694
+ const { data } = await api('DELETE', `/api/loops/${id}`);
695
+ console.log(jsonOut ? JSON.stringify(data, null, 2) : `deleted ${id}`);
696
+ break;
697
+ }
698
+ case 'runs': {
699
+ const id = loopArgs.find((a) => !a.startsWith('--'));
700
+ if (!id)
701
+ throw new Error('Missing loop-id');
702
+ const { data } = await api('GET', `/api/loops/${id}/runs`);
703
+ console.log(JSON.stringify(data, null, 2));
704
+ break;
705
+ }
706
+ default:
707
+ usage();
708
+ process.exit(1);
709
+ }
710
+ break;
711
+ }
402
712
  default:
403
713
  usage();
404
714
  process.exit(1);
@@ -424,5 +734,29 @@ function formatCreated(data) {
424
734
  const resumeNote = resumed === undefined ? '' : resumed ? ' [resumed]' : ' [fresh conversation]';
425
735
  return `created ${session.id} ${session.name} (${session.status})${resumeNote}`;
426
736
  }
737
+ function formatLoopList(data) {
738
+ const loops = data.loops ?? [];
739
+ if (loops.length === 0)
740
+ return '(no loops)';
741
+ return loops
742
+ .map((loop) => {
743
+ const status = loop.enabled ? loop.lastStatus ?? 'never' : 'disabled';
744
+ return `${loop.id} ${status} ${describeSchedule(loop.schedule)} next:${formatTimestamp(loop.nextRunAt)} runs:${loop.runCount} ${loop.name}`;
745
+ })
746
+ .join('\n');
747
+ }
748
+ function formatLoopCreated(data) {
749
+ const loop = data.loop;
750
+ if (!loop)
751
+ return JSON.stringify(data, null, 2);
752
+ const status = loop.enabled ? loop.lastStatus ?? 'never' : 'disabled';
753
+ return `${loop.id} ${status} ${describeSchedule(loop.schedule)} next:${formatTimestamp(loop.nextRunAt)} ${loop.name}`;
754
+ }
755
+ function formatLoopRunNow(data) {
756
+ const result = data;
757
+ if (result.fired)
758
+ return 'run requested';
759
+ return `not fired${result.reason ? `: ${result.reason}` : ''}`;
760
+ }
427
761
  main();
428
762
  //# sourceMappingURL=ftown-sessions-cli.js.map