pi-forge 1.2.3 → 1.2.5

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 (83) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/{CodeMirrorEditor-1gu-DS9k.js → CodeMirrorEditor-DXmxwE2Z.js} +2 -2
  3. package/dist/client/assets/{CodeMirrorEditor-1gu-DS9k.js.map → CodeMirrorEditor-DXmxwE2Z.js.map} +1 -1
  4. package/dist/client/assets/index-CMSjnWtF.js +365 -0
  5. package/dist/client/assets/index-CMSjnWtF.js.map +1 -0
  6. package/dist/client/assets/index-Cp8qEy7Q.css +1 -0
  7. package/dist/client/index.html +2 -2
  8. package/dist/client/sw.js +1 -1
  9. package/dist/client/sw.js.map +1 -1
  10. package/dist/server/agent-extensions/compaction-continuation.js +65 -0
  11. package/dist/server/agent-extensions/compaction-continuation.js.map +1 -0
  12. package/dist/server/agent-resource-loader.js +10 -0
  13. package/dist/server/agent-resource-loader.js.map +1 -1
  14. package/dist/server/ask-user-question/envelope.js +56 -0
  15. package/dist/server/ask-user-question/envelope.js.map +1 -0
  16. package/dist/server/ask-user-question/prompt-strings.js +44 -0
  17. package/dist/server/ask-user-question/prompt-strings.js.map +1 -0
  18. package/dist/server/ask-user-question/registry.js +157 -0
  19. package/dist/server/ask-user-question/registry.js.map +1 -0
  20. package/dist/server/ask-user-question/tool.js +115 -0
  21. package/dist/server/ask-user-question/tool.js.map +1 -0
  22. package/dist/server/ask-user-question/types.js +27 -0
  23. package/dist/server/ask-user-question/types.js.map +1 -0
  24. package/dist/server/ask-user-question/validate.js +135 -0
  25. package/dist/server/ask-user-question/validate.js.map +1 -0
  26. package/dist/server/config.js +10 -0
  27. package/dist/server/config.js.map +1 -1
  28. package/dist/server/index.js +16 -0
  29. package/dist/server/index.js.map +1 -1
  30. package/dist/server/mcp/tool-bridge.js +14 -8
  31. package/dist/server/mcp/tool-bridge.js.map +1 -1
  32. package/dist/server/processes/envelope.js +60 -0
  33. package/dist/server/processes/envelope.js.map +1 -0
  34. package/dist/server/processes/log-store.js +132 -0
  35. package/dist/server/processes/log-store.js.map +1 -0
  36. package/dist/server/processes/manager.js +348 -0
  37. package/dist/server/processes/manager.js.map +1 -0
  38. package/dist/server/processes/prompt-strings.js +43 -0
  39. package/dist/server/processes/prompt-strings.js.map +1 -0
  40. package/dist/server/processes/tool.js +273 -0
  41. package/dist/server/processes/tool.js.map +1 -0
  42. package/dist/server/processes/types.js +21 -0
  43. package/dist/server/processes/types.js.map +1 -0
  44. package/dist/server/processes/watches.js +59 -0
  45. package/dist/server/processes/watches.js.map +1 -0
  46. package/dist/server/quick-actions.js +141 -0
  47. package/dist/server/quick-actions.js.map +1 -0
  48. package/dist/server/routes/ask-user-question.js +129 -0
  49. package/dist/server/routes/ask-user-question.js.map +1 -0
  50. package/dist/server/routes/config.js +12 -0
  51. package/dist/server/routes/config.js.map +1 -1
  52. package/dist/server/routes/processes.js +228 -0
  53. package/dist/server/routes/processes.js.map +1 -0
  54. package/dist/server/routes/quick-actions.js +384 -0
  55. package/dist/server/routes/quick-actions.js.map +1 -0
  56. package/dist/server/routes/todos.js +67 -0
  57. package/dist/server/routes/todos.js.map +1 -0
  58. package/dist/server/session-registry.js +72 -4
  59. package/dist/server/session-registry.js.map +1 -1
  60. package/dist/server/sse-bridge.js +225 -4
  61. package/dist/server/sse-bridge.js.map +1 -1
  62. package/dist/server/todo/envelope.js +87 -0
  63. package/dist/server/todo/envelope.js.map +1 -0
  64. package/dist/server/todo/invariants.js +21 -0
  65. package/dist/server/todo/invariants.js.map +1 -0
  66. package/dist/server/todo/prompt-strings.js +29 -0
  67. package/dist/server/todo/prompt-strings.js.map +1 -0
  68. package/dist/server/todo/reducer.js +189 -0
  69. package/dist/server/todo/reducer.js.map +1 -0
  70. package/dist/server/todo/replay.js +45 -0
  71. package/dist/server/todo/replay.js.map +1 -0
  72. package/dist/server/todo/store.js +92 -0
  73. package/dist/server/todo/store.js.map +1 -0
  74. package/dist/server/todo/task-graph.js +60 -0
  75. package/dist/server/todo/task-graph.js.map +1 -0
  76. package/dist/server/todo/tool.js +95 -0
  77. package/dist/server/todo/tool.js.map +1 -0
  78. package/dist/server/todo/types.js +23 -0
  79. package/dist/server/todo/types.js.map +1 -0
  80. package/package.json +1 -1
  81. package/dist/client/assets/index-BxZV6ddv.js +0 -359
  82. package/dist/client/assets/index-BxZV6ddv.js.map +0 -1
  83. package/dist/client/assets/index-KUhxvBxw.css +0 -1
@@ -0,0 +1,157 @@
1
+ import { randomUUID } from "node:crypto";
2
+ const byRequestId = new Map();
3
+ const bySessionId = new Map();
4
+ const listeners = new Set();
5
+ export function subscribe(fn) {
6
+ listeners.add(fn);
7
+ return () => {
8
+ listeners.delete(fn);
9
+ };
10
+ }
11
+ function notify(event) {
12
+ for (const fn of listeners) {
13
+ try {
14
+ fn(event);
15
+ }
16
+ catch {
17
+ // listener errors must not break the registry — best-effort fanout
18
+ }
19
+ }
20
+ }
21
+ /**
22
+ * Register a pending request. The returned promise resolves when
23
+ * the browser answers, or when the caller's `signal` aborts (in
24
+ * which case the tool result will be a cancelled envelope built by
25
+ * the caller).
26
+ *
27
+ * `signal` is honored: if the agent is aborted (e.g. user hit Stop)
28
+ * the entry is dropped and the promise rejects with an
29
+ * `AbortError`. The caller catches that and returns the cancelled
30
+ * envelope so the agent sees a clean tool result.
31
+ */
32
+ export function registerPending(args) {
33
+ const requestId = randomUUID();
34
+ let resolveFn;
35
+ let rejectFn;
36
+ const result = new Promise((resolve, reject) => {
37
+ resolveFn = resolve;
38
+ rejectFn = reject;
39
+ });
40
+ const entry = {
41
+ requestId,
42
+ sessionId: args.sessionId,
43
+ questions: args.questions,
44
+ createdAt: new Date(),
45
+ resolve: resolveFn,
46
+ };
47
+ byRequestId.set(requestId, entry);
48
+ const set = bySessionId.get(args.sessionId) ?? new Set();
49
+ set.add(requestId);
50
+ bySessionId.set(args.sessionId, set);
51
+ if (args.signal !== undefined) {
52
+ const onAbort = () => {
53
+ // Drop the entry and tell SSE clients to close the modal.
54
+ // The tool's execute() catches the rejection and returns a
55
+ // cancelled envelope to the agent.
56
+ if (byRequestId.has(requestId)) {
57
+ removeEntry(requestId);
58
+ notify({
59
+ type: "ask_user_question_cancelled",
60
+ sessionId: args.sessionId,
61
+ requestId,
62
+ reason: "aborted",
63
+ });
64
+ rejectFn(new Error("aborted"));
65
+ }
66
+ };
67
+ if (args.signal.aborted)
68
+ onAbort();
69
+ else
70
+ args.signal.addEventListener("abort", onAbort, { once: true });
71
+ }
72
+ notify({
73
+ type: "ask_user_question",
74
+ sessionId: args.sessionId,
75
+ requestId,
76
+ questions: args.questions,
77
+ });
78
+ return { requestId, result };
79
+ }
80
+ function removeEntry(requestId) {
81
+ const e = byRequestId.get(requestId);
82
+ if (e === undefined)
83
+ return;
84
+ byRequestId.delete(requestId);
85
+ const set = bySessionId.get(e.sessionId);
86
+ if (set !== undefined) {
87
+ set.delete(requestId);
88
+ if (set.size === 0)
89
+ bySessionId.delete(e.sessionId);
90
+ }
91
+ }
92
+ /**
93
+ * Resolve the pending entry with the user's answers. Idempotent —
94
+ * if the entry was already resolved (e.g. concurrent answer +
95
+ * abort race), this returns `false` rather than throwing so the
96
+ * route layer can decide whether to 200 or 404.
97
+ */
98
+ export function answerPending(requestId, expectedSessionId, result) {
99
+ const e = byRequestId.get(requestId);
100
+ if (e === undefined)
101
+ return false;
102
+ if (e.sessionId !== expectedSessionId)
103
+ return false;
104
+ removeEntry(requestId);
105
+ // SSE clients listen for "the modal should now close" — emit a
106
+ // cancelled event with reason "answered" so the modal tears down
107
+ // on every other browser tab watching the same session.
108
+ notify({
109
+ type: "ask_user_question_cancelled",
110
+ sessionId: e.sessionId,
111
+ requestId,
112
+ reason: "answered",
113
+ });
114
+ e.resolve(result);
115
+ return true;
116
+ }
117
+ /**
118
+ * Explicit cancel from the client side (user clicked "Chat about
119
+ * this" or closed the modal). Same shape as answer, but the
120
+ * caller-supplied envelope carries `cancelled: true` and an
121
+ * empty `answers` array — or partial answers if the user filled
122
+ * some tabs before bailing.
123
+ */
124
+ export function cancelPending(requestId, expectedSessionId, result) {
125
+ // Same path as answerPending — the distinction is in the envelope
126
+ // shape, not the registry mechanics.
127
+ return answerPending(requestId, expectedSessionId, result);
128
+ }
129
+ export function getPendingForSession(sessionId) {
130
+ const ids = bySessionId.get(sessionId);
131
+ if (ids === undefined)
132
+ return [];
133
+ const out = [];
134
+ for (const id of ids) {
135
+ const e = byRequestId.get(id);
136
+ if (e !== undefined) {
137
+ out.push({
138
+ requestId: e.requestId,
139
+ sessionId: e.sessionId,
140
+ questions: e.questions,
141
+ createdAt: e.createdAt,
142
+ });
143
+ }
144
+ }
145
+ return out;
146
+ }
147
+ /**
148
+ * Test-only reset. Clears all pending state without notifying
149
+ * listeners — call between integration test cases to avoid
150
+ * cross-contamination.
151
+ */
152
+ export function _resetForTests() {
153
+ byRequestId.clear();
154
+ bySessionId.clear();
155
+ listeners.clear();
156
+ }
157
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/ask-user-question/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import { Type } from "typebox";
2
+ import { registerPending } from "./registry.js";
3
+ import { validateQuestionnaire } from "./validate.js";
4
+ import { buildResult } from "./envelope.js";
5
+ import { PROMPT_GUIDELINES, PROMPT_SNIPPET, TOOL_DESCRIPTION } from "./prompt-strings.js";
6
+ import { MAX_HEADER_LENGTH, MAX_LABEL_LENGTH, MAX_OPTIONS, MAX_QUESTIONS, MIN_OPTIONS, } from "./types.js";
7
+ export const ASK_USER_QUESTION_TOOL_NAME = "ask_user_question";
8
+ /**
9
+ * JSON Schema for the tool's params. We hand-write the schema
10
+ * (rather than reaching for TypeBox) so the shape matches what the
11
+ * upstream plugin advertises field-for-field. The structural caps
12
+ * (1..MAX_QUESTIONS, MIN..MAX_OPTIONS, maxLength) act as a fast
13
+ * pre-filter; `validateQuestionnaire` runs after for semantic
14
+ * checks the schema can't express (reserved labels, dupes).
15
+ *
16
+ * Type.Unsafe wraps the raw JSON Schema as a TypeBox schema so it
17
+ * satisfies the ToolDefinition.parameters type without dragging
18
+ * the rest of the TypeBox DSL into our code.
19
+ */
20
+ const inputSchema = {
21
+ type: "object",
22
+ required: ["questions"],
23
+ properties: {
24
+ questions: {
25
+ type: "array",
26
+ minItems: 1,
27
+ maxItems: MAX_QUESTIONS,
28
+ items: {
29
+ type: "object",
30
+ required: ["question", "header", "options"],
31
+ properties: {
32
+ question: { type: "string", minLength: 1 },
33
+ header: { type: "string", minLength: 1, maxLength: MAX_HEADER_LENGTH },
34
+ multiSelect: { type: "boolean" },
35
+ options: {
36
+ type: "array",
37
+ minItems: MIN_OPTIONS,
38
+ maxItems: MAX_OPTIONS,
39
+ items: {
40
+ type: "object",
41
+ required: ["label", "description"],
42
+ properties: {
43
+ label: { type: "string", minLength: 1, maxLength: MAX_LABEL_LENGTH },
44
+ description: { type: "string", minLength: 1 },
45
+ preview: { type: "string" },
46
+ },
47
+ },
48
+ },
49
+ },
50
+ },
51
+ },
52
+ },
53
+ };
54
+ /**
55
+ * Build the per-session `ask_user_question` tool. Bound to one
56
+ * session so `execute()` knows which browser to push the
57
+ * questions to.
58
+ *
59
+ * The tool is contract-compatible with
60
+ * `@juicesharp/rpiv-ask-user-question` — agents prompted to use
61
+ * `ask_user_question` get the same input schema, the same
62
+ * response envelope (`{content:[{type:"text",text}], details:{
63
+ * answers, cancelled, error?}}`), and the same answer-kind
64
+ * vocabulary (`option | custom | chat | multi`). Implementation
65
+ * is independent; the contract is reproduced via the published
66
+ * schema descriptions.
67
+ */
68
+ export function createAskUserQuestionTool(sessionId) {
69
+ return {
70
+ name: ASK_USER_QUESTION_TOOL_NAME,
71
+ label: "Ask User Question",
72
+ description: TOOL_DESCRIPTION,
73
+ promptSnippet: PROMPT_SNIPPET,
74
+ promptGuidelines: PROMPT_GUIDELINES,
75
+ parameters: Type.Unsafe(inputSchema),
76
+ async execute(_toolCallId, params, signal) {
77
+ const validation = validateQuestionnaire(params);
78
+ if (!validation.ok) {
79
+ // Validation failure is communicated to the agent in the
80
+ // same shape the plugin uses — `details.error` carries the
81
+ // discriminated code, `details.cancelled` is true, and the
82
+ // text block summarises so the model has something to read.
83
+ return buildResult([], {
84
+ cancelled: true,
85
+ error: validation.error,
86
+ questionCount: 0,
87
+ });
88
+ }
89
+ const { params: q } = validation;
90
+ try {
91
+ const args = {
92
+ sessionId,
93
+ questions: q.questions,
94
+ };
95
+ if (signal !== undefined)
96
+ args.signal = signal;
97
+ const { result } = registerPending(args);
98
+ return await result;
99
+ }
100
+ catch (err) {
101
+ // Abort path — `registerPending` rejects with Error("aborted")
102
+ // when the agent's signal fires. Return a clean cancelled
103
+ // envelope so the agent sees a tool result rather than an
104
+ // unhandled exception in its loop.
105
+ const message = err instanceof Error ? err.message : String(err);
106
+ return buildResult([], {
107
+ cancelled: true,
108
+ error: message,
109
+ questionCount: q.questions.length,
110
+ });
111
+ }
112
+ },
113
+ };
114
+ }
115
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/ask-user-question/tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Shape definitions for the `ask_user_question` tool. The wire schema
3
+ * (questions[1..4] with options[2..4]; header ≤16 chars; label ≤60
4
+ * chars; reserved sentinel labels) is contract-compatible with
5
+ * `@juicesharp/rpiv-ask-user-question` — an agent prompt written
6
+ * against the plugin works against this implementation unchanged.
7
+ *
8
+ * Implementation is independent; constants and validation rules were
9
+ * derived from the plugin's published schema descriptions and test
10
+ * fixtures rather than copied. See `docs/ask-user-question.md` for the
11
+ * cross-reference.
12
+ */
13
+ export const MAX_QUESTIONS = 4;
14
+ export const MIN_OPTIONS = 2;
15
+ export const MAX_OPTIONS = 4;
16
+ export const MAX_HEADER_LENGTH = 16;
17
+ export const MAX_LABEL_LENGTH = 60;
18
+ /**
19
+ * Labels the validator rejects at submit time. The four runtime
20
+ * sentinels ("Type something.", "Chat about this", "Next") are
21
+ * appended by the UI so authoring them would collide; "Other" is
22
+ * reserved for CC-style parity (the model often reaches for "Other"
23
+ * when given the chance — we want the runtime sentinel to be the
24
+ * single source of truth).
25
+ */
26
+ export const RESERVED_LABELS = ["Other", "Type something.", "Chat about this", "Next"];
27
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ask-user-question/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC;AAC/B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAU,CAAC"}
@@ -0,0 +1,135 @@
1
+ import { MAX_HEADER_LENGTH, MAX_LABEL_LENGTH, MAX_OPTIONS, MAX_QUESTIONS, MIN_OPTIONS, RESERVED_LABELS, } from "./types.js";
2
+ /**
3
+ * Runtime validation for the agent-supplied questionnaire. Mirrors
4
+ * the upstream plugin's rules without porting code. Each failure
5
+ * returns the same error-code vocabulary the plugin uses so a
6
+ * downstream parser doesn't care which implementation answered.
7
+ *
8
+ * The schema layer (Fastify body validation) catches type/shape
9
+ * errors first; this validator enforces the semantic ones: reserved
10
+ * sentinel labels, duplicate labels, the question / option count
11
+ * caps, and the byte-cap on header and label fields. Byte caps live
12
+ * here too (not just in the schema) so a caller that bypassed the
13
+ * schema — e.g. a future programmatic invocation path — still gets
14
+ * the same enforcement.
15
+ */
16
+ export function validateQuestionnaire(input) {
17
+ if (typeof input !== "object" || input === null) {
18
+ return { ok: false, error: "no_questions", message: "params must be an object" };
19
+ }
20
+ const params = input;
21
+ const questions = params.questions;
22
+ if (!Array.isArray(questions) || questions.length === 0) {
23
+ return {
24
+ ok: false,
25
+ error: "no_questions",
26
+ message: "questions[] must have at least one entry",
27
+ };
28
+ }
29
+ if (questions.length > MAX_QUESTIONS) {
30
+ return {
31
+ ok: false,
32
+ error: "too_many_questions",
33
+ message: `at most ${MAX_QUESTIONS} questions per invocation`,
34
+ };
35
+ }
36
+ const reserved = new Set(RESERVED_LABELS);
37
+ for (let qi = 0; qi < questions.length; qi += 1) {
38
+ const q = questions[qi];
39
+ if (typeof q !== "object" || q === null) {
40
+ return {
41
+ ok: false,
42
+ error: "missing_question_text",
43
+ message: `question[${qi}] is not an object`,
44
+ };
45
+ }
46
+ const question = q.question;
47
+ if (typeof question !== "string" || question.trim().length === 0) {
48
+ return {
49
+ ok: false,
50
+ error: "missing_question_text",
51
+ message: `question[${qi}].question is required`,
52
+ };
53
+ }
54
+ const header = q.header;
55
+ if (typeof header !== "string" || header.length === 0) {
56
+ return { ok: false, error: "missing_header", message: `question[${qi}].header is required` };
57
+ }
58
+ if (header.length > MAX_HEADER_LENGTH) {
59
+ return {
60
+ ok: false,
61
+ error: "header_too_long",
62
+ message: `question[${qi}].header exceeds ${MAX_HEADER_LENGTH} chars`,
63
+ };
64
+ }
65
+ const options = q.options;
66
+ if (!Array.isArray(options) || options.length < MIN_OPTIONS) {
67
+ return {
68
+ ok: false,
69
+ error: "too_few_options",
70
+ message: `question[${qi}] requires at least ${MIN_OPTIONS} options`,
71
+ };
72
+ }
73
+ if (options.length > MAX_OPTIONS) {
74
+ return {
75
+ ok: false,
76
+ error: "too_many_options",
77
+ message: `question[${qi}] allows at most ${MAX_OPTIONS} options`,
78
+ };
79
+ }
80
+ const seenLabels = new Set();
81
+ for (let oi = 0; oi < options.length; oi += 1) {
82
+ const opt = options[oi];
83
+ if (typeof opt !== "object" || opt === null) {
84
+ return {
85
+ ok: false,
86
+ error: "missing_label",
87
+ message: `question[${qi}].options[${oi}] is not an object`,
88
+ };
89
+ }
90
+ const label = opt.label;
91
+ if (typeof label !== "string" || label.length === 0) {
92
+ return {
93
+ ok: false,
94
+ error: "missing_label",
95
+ message: `question[${qi}].options[${oi}].label is required`,
96
+ };
97
+ }
98
+ if (label.length > MAX_LABEL_LENGTH) {
99
+ return {
100
+ ok: false,
101
+ error: "label_too_long",
102
+ message: `question[${qi}].options[${oi}].label exceeds ${MAX_LABEL_LENGTH} chars`,
103
+ };
104
+ }
105
+ // Reserved-label check applies to every kind (multiSelect too)
106
+ // so the runtime sentinels stay the single source of truth even
107
+ // when the UI suppresses them.
108
+ if (reserved.has(label)) {
109
+ return {
110
+ ok: false,
111
+ error: "reserved_label",
112
+ message: `question[${qi}].options[${oi}].label "${label}" is reserved — pick a different label`,
113
+ };
114
+ }
115
+ if (seenLabels.has(label)) {
116
+ return {
117
+ ok: false,
118
+ error: "duplicate_label",
119
+ message: `question[${qi}].options[${oi}].label "${label}" duplicates an earlier option`,
120
+ };
121
+ }
122
+ seenLabels.add(label);
123
+ const description = opt.description;
124
+ if (typeof description !== "string" || description.length === 0) {
125
+ return {
126
+ ok: false,
127
+ error: "missing_description",
128
+ message: `question[${qi}].options[${oi}].description is required`,
129
+ };
130
+ }
131
+ }
132
+ }
133
+ return { ok: true, params: params };
134
+ }
135
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/ask-user-question/validate.ts"],"names":[],"mappings":"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"}
@@ -231,6 +231,16 @@ export const config = Object.freeze({
231
231
  * placement rationale as the other override files.
232
232
  */
233
233
  systemPromptOverridesFile: join(FORGE_DATA_DIR, "system-prompt-overrides.json"),
234
+ /**
235
+ * Path to the forge-private quick-actions registry. One flat JSON
236
+ * array of "chips" the user can click from the chat-view toolbar to
237
+ * fire either a shell command (run in the current project's cwd) or
238
+ * a templated prompt (sent to / inserted into the active session).
239
+ * Global (not per-project) by design — chips are the operator's
240
+ * personal toolbox, same install-private rationale as the other
241
+ * forge-owned files.
242
+ */
243
+ quickActionsFile: join(FORGE_DATA_DIR, "quick-actions.json"),
234
244
  /**
235
245
  * Whether `/api/docs` (Swagger UI + OpenAPI JSON spec) is reachable.
236
246
  * Defaults to true so Docker / production deploys keep working without
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -25,9 +25,14 @@ import { gitRoutes } from "./routes/git.js";
25
25
  import { execRoutes } from "./routes/exec.js";
26
26
  import { exportRoutes } from "./routes/export.js";
27
27
  import { mcpRoutes } from "./routes/mcp.js";
28
+ import { quickActionRoutes } from "./routes/quick-actions.js";
29
+ import { askUserQuestionRoutes } from "./routes/ask-user-question.js";
30
+ import { todoRoutes } from "./routes/todos.js";
31
+ import { processesRoutes } from "./routes/processes.js";
28
32
  import { searchRoutes } from "./routes/search.js";
29
33
  import { terminalRoutes } from "./routes/terminal.js";
30
34
  import { disposeAll as disposeAllMcp, loadGlobal as loadGlobalMcp } from "./mcp/manager.js";
35
+ import { initAskUserQuestionFanout, initProcessesFanout, initTodoFanout } from "./sse-bridge.js";
31
36
  import { disposeAllSessions } from "./session-registry.js";
32
37
  import { disposeAllPtys, installPtyExitHandler } from "./pty-manager.js";
33
38
  import { logSecretHygieneState } from "./agent-resource-loader.js";
@@ -353,6 +358,10 @@ export async function buildServer() {
353
358
  await api.register(execRoutes);
354
359
  await api.register(exportRoutes);
355
360
  await api.register(mcpRoutes);
361
+ await api.register(quickActionRoutes);
362
+ await api.register(askUserQuestionRoutes);
363
+ await api.register(todoRoutes);
364
+ await api.register(processesRoutes);
356
365
  await api.register(searchRoutes);
357
366
  await api.register(terminalRoutes);
358
367
  }, { prefix: "/api/v1" });
@@ -428,6 +437,13 @@ export async function buildServer() {
428
437
  loadGlobalMcp().catch((err) => {
429
438
  fastify.log.error({ err }, "mcp: initial load failed");
430
439
  });
440
+ // Wire the ask-user-question registry into SSE so per-session
441
+ // events ("agent invoked the tool" / "request was answered or
442
+ // cancelled") fan out to every live browser client of that
443
+ // session. One subscription for the lifetime of the process.
444
+ initAskUserQuestionFanout();
445
+ initTodoFanout();
446
+ initProcessesFanout();
431
447
  return fastify;
432
448
  }
433
449
  export async function start() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -105,13 +105,19 @@ export function mcpResultToAgentResult(res) {
105
105
  }
106
106
  /**
107
107
  * Default cap on the total *text* size (across all text blocks) of an
108
- * MCP tool result, in characters. ~100k chars ≈ ~25k tokens via the
109
- * standard chars/4 heuristic the SDK uses elsewhere large enough
110
- * that almost no legitimate single tool call hits it, small enough
111
- * that one accidental "list everything" doesn't blow a 200k context
112
- * window. Image blocks are passed through untouched (truncating
113
- * base64 mid-byte breaks the image; image tokens are
114
- * provider-specific anyway and not measured here).
108
+ * MCP tool result, in characters. 30k chars ≈ 10k tokens at the
109
+ * code/JSON chars/3 ratio (the older 4:1 estimate was tuned for
110
+ * prose and systematically under-counted real tool output by
111
+ * 20–40%). The earlier 100k-char (≈ 33k-token) cap let one chatty
112
+ * `list_everything` call dump 30k+ real tokens into context, eating
113
+ * most of a session's usable budget in a single round trip and
114
+ * triggering compaction far earlier than the operator expects. 10k
115
+ * tokens is the practical upper bound for a *single* tool round
116
+ * trip — anything bigger should be paginated, filtered, or written
117
+ * to disk for the agent to `read` incrementally. Image blocks are
118
+ * passed through untouched (truncating base64 mid-byte breaks the
119
+ * image; image tokens are provider-specific anyway and not measured
120
+ * here).
115
121
  *
116
122
  * Split: 60% head + 40% tail. Head usually carries summary / total /
117
123
  * schema context that the agent needs to interpret the rest; tail
@@ -126,7 +132,7 @@ export function mcpResultToAgentResult(res) {
126
132
  * No per-tool override yet — add when a real workload needs a higher
127
133
  * or lower cap. Hardcoded constant is the deliberate first cut.
128
134
  */
129
- export const MCP_TEXT_CAP_CHARS = 100_000;
135
+ export const MCP_TEXT_CAP_CHARS = 30_000;
130
136
  export const MCP_TEXT_HEAD_RATIO = 0.6;
131
137
  export function capTextContent(blocks) {
132
138
  let totalText = 0;