@gaia-ai/conductor 0.4.5 → 0.4.6

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.
@@ -12,17 +12,24 @@ import type { ConductorFileConfig } from '@gaia-ai/core';
12
12
  *
13
13
  * The ticket + its comments are NOT embedded (GAIA-112): embedding unbounded
14
14
  * ticket content into a single typed pane line overran the PTY canonical line
15
- * cap (MAX_CANON = 4096 B) and truncated the dispatch command. Instead the
16
- * prompt is a bounded, constant-size pointer and the agent reads the ticket +
17
- * all comments at run start via `gaia dropsh read … --include comments`.
15
+ * cap and truncated the dispatch command. Instead the prompt is a bounded,
16
+ * constant-size pointer and the agent reads the ticket + all comments at run
17
+ * start via `gaia dropsh read … --include comments`.
18
+ *
19
+ * HINT — the canonical cap is platform-specific: MAX_CANON is 4096 B on Linux
20
+ * but only 1024 B on macOS (a whole line >= 1024 B is silently DROPPED there).
21
+ * herdr types env-prefix + this prompt + flags as ONE line, so keep the total
22
+ * well under 1024 B — i.e. keep this prompt short (~a few hundred bytes). Do NOT
23
+ * grow it back toward the old ~1 KB, or macOS dispatch truncates silently again.
18
24
  *
19
25
  * The prompt is a SINGLE LINE — no newlines, no control chars (GAIA-128). herdr
20
26
  * types it into the pane as one line, so a newline would submit early and any
21
27
  * control char would force bash-only `$'…'` quoting that fish can't parse.
22
28
  * Being single-line + bounded, plain `'…'` shell-quoting suffices (fish-safe)
23
- * and the typed line stays well under the 4096 B cap so NO base64/`bash -c`
24
- * wrapper and NO multiline handling are needed (that wrapper, GAIA-118, was the
25
- * thing that re-inflated the line past the cap and truncated it mid-quote).
29
+ * and the typed line stays well under the cap (1024 B on macOS, 4096 B on Linux)
30
+ * — so NO base64/`bash -c` wrapper and NO multiline handling are needed (that
31
+ * wrapper, GAIA-118, was the thing that re-inflated the line past the cap and
32
+ * truncated it mid-quote).
26
33
  * Placeholders: `{identifier}`, `{state}`, `{runUuid}` ({state} falls back to
27
34
  * `triage` for unclassified tickets).
28
35
  */
@@ -15,34 +15,34 @@ import { pathToFileURL } from 'node:url';
15
15
  *
16
16
  * The ticket + its comments are NOT embedded (GAIA-112): embedding unbounded
17
17
  * ticket content into a single typed pane line overran the PTY canonical line
18
- * cap (MAX_CANON = 4096 B) and truncated the dispatch command. Instead the
19
- * prompt is a bounded, constant-size pointer and the agent reads the ticket +
20
- * all comments at run start via `gaia dropsh read … --include comments`.
18
+ * cap and truncated the dispatch command. Instead the prompt is a bounded,
19
+ * constant-size pointer and the agent reads the ticket + all comments at run
20
+ * start via `gaia dropsh read … --include comments`.
21
+ *
22
+ * HINT — the canonical cap is platform-specific: MAX_CANON is 4096 B on Linux
23
+ * but only 1024 B on macOS (a whole line >= 1024 B is silently DROPPED there).
24
+ * herdr types env-prefix + this prompt + flags as ONE line, so keep the total
25
+ * well under 1024 B — i.e. keep this prompt short (~a few hundred bytes). Do NOT
26
+ * grow it back toward the old ~1 KB, or macOS dispatch truncates silently again.
21
27
  *
22
28
  * The prompt is a SINGLE LINE — no newlines, no control chars (GAIA-128). herdr
23
29
  * types it into the pane as one line, so a newline would submit early and any
24
30
  * control char would force bash-only `$'…'` quoting that fish can't parse.
25
31
  * Being single-line + bounded, plain `'…'` shell-quoting suffices (fish-safe)
26
- * and the typed line stays well under the 4096 B cap so NO base64/`bash -c`
27
- * wrapper and NO multiline handling are needed (that wrapper, GAIA-118, was the
28
- * thing that re-inflated the line past the cap and truncated it mid-quote).
32
+ * and the typed line stays well under the cap (1024 B on macOS, 4096 B on Linux)
33
+ * — so NO base64/`bash -c` wrapper and NO multiline handling are needed (that
34
+ * wrapper, GAIA-118, was the thing that re-inflated the line past the cap and
35
+ * truncated it mid-quote).
29
36
  * Placeholders: `{identifier}`, `{state}`, `{runUuid}` ({state} falls back to
30
37
  * `triage` for unclassified tickets).
31
38
  */
32
39
  export const DEFAULT_AGENT_PROMPT = `You are a GAIA agent working ticket {identifier}, current state: {state}. ` +
33
- `Invoke the gaia skill and run \`ticket:run {identifier} {state}\` — it renders ` +
34
- `the intake splash, runs the {state} engine, and applies WORKFLOW.md's {state} policy. ` +
35
- `This run covers EXACTLY the {state} state - do only its work. Do not start, ` +
36
- `prepare, or perform any later state's work, even if WORKFLOW.md mentions ` +
37
- `transitioning onward. When the {state} work is done and you have no open ` +
38
- `questions, STOP - do not pick up or work any further state or ticket. If ` +
39
- `blocked or you need a human, stop and surface the blocker. After you have ` +
40
- `written the ticket's next state, run /exit to end this session. ` +
41
- `First, read the ticket + all comments in one call: run ` +
42
- `gaia dropsh read gaia_ticket/gaia_ticket/$GAIA_ID --include comments — the ` +
43
- `latest \`summary\` comment is review feedback you MUST address; any ` +
44
- `\`spec\`/\`diagnose\` comment is the agreed plan. Treat them as in-scope ` +
45
- `acceptance criteria.`;
40
+ `Invoke the gaia skill and run \`ticket:run {identifier} {state}\` — it first ` +
41
+ `reads the ticket + all comments ` +
42
+ `(gaia dropsh read gaia_ticket/gaia_ticket/$GAIA_ID --include comments), ` +
43
+ `renders the intake splash, runs the {state} engine, and applies ` +
44
+ `WORKFLOW.md's {state} policy. Do ONLY the {state} work never start or ` +
45
+ `prepare a later state. When done, or if you are blocked, STOP and run /exit.`;
46
46
  function requirePlugin(value, kind) {
47
47
  if (!isRecord(value) || value.kind !== kind) {
48
48
  throw new Error(`conductor config requires a ${kind} plugin in the "${kind}" slot`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gaia-ai/conductor",
3
- "version": "0.4.5",
3
+ "version": "0.4.6",
4
4
  "description": "GAIA conductor engine + CLI: registers, claims tickets via JSON:API, dispatches agents.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -25,7 +25,7 @@
25
25
  "directory": "conductor/packages/conductor"
26
26
  },
27
27
  "dependencies": {
28
- "@gaia-ai/core": "^0.4.5",
28
+ "@gaia-ai/core": "^0.4.6",
29
29
  "@dropsh/plugin-oauth2": "^0.4.1",
30
30
  "@dropsh/plugin-jsonapi-schema": "^0.5.6",
31
31
  "commander": "^12.1.0",