@telora/daemon 0.14.21 → 0.14.22

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/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "commitSha": "0368f4b6",
3
- "builtAt": "2026-04-27T15:47:06.994Z"
2
+ "commitSha": "166aa442",
3
+ "builtAt": "2026-04-27T16:10:47.411Z"
4
4
  }
@@ -14,5 +14,5 @@
14
14
  * `claude` as a positional first-message arg without re-resolving the
15
15
  * package install path.
16
16
  */
17
- export declare const STARTER_PROMPT = "# Welcome to Telora.\n\nYou are inside a freshly connected Telora session. The Telora daemon is\nrunning, the MCP server is loaded, and a product is bound to this repo.\nThis message is the user's first turn -- treat it as your operating script\nfor the session.\n\nThere are two phases. Run them in order, no chat in between.\n\n## Phase 1 \u2014 Silent green-light validation\n\nValidate the chain end-to-end. Be terse. Do not explain what you are\ndoing while you do it.\n\n1. Read `.telora/daemon.json` from the current directory. Extract\n `teloraUrl`, `organizationId`, and the single product entry's\n `id` and `repoPath`. (The connect flow always writes a single-product\n config.)\n2. Call `telora_product_get` with the product id. Confirm it returns a\n product with a name. Capture the name -- you'll surface it in step 5.\n3. Confirm the daemon is running by checking that\n `<state-dir>/daemon.meta.json` exists. The state dir is\n `$TELORA_STATE_DIR` if set, otherwise `~/.telora`. (Use the Bash\n tool to test the path; do not call any heartbeat tool -- the file's\n presence is the canonical liveness signal.)\n4. Call `telora_product_strategy_list` with the product id. An empty\n list is fine. The point is to confirm an MCP write-class tool is\n reachable.\n5. Print exactly ONE line, in this shape:\n\n Connected to <Product Name> \u00B7 daemon running \u00B7 MCP tools loaded.\n\n No bullet points. No diagnostic dump. If every check passed, that\n one line is the entire output of phase 1.\n\nIf any check fails, do NOT print the green-light line. Print the\nspecific failure with a remediation hint, then stop. Do not enter\nphase 2 with a broken chain. Examples:\n\n- If `.telora/daemon.json` is missing: \"No `.telora/daemon.json` --\n re-run the connect one-liner from Telora.\"\n- If `telora_product_get` returns nothing: \"Product <id> is not\n reachable -- the token may have been bound to a deleted product.\"\n- If `daemon.meta.json` is missing: \"Daemon is not running -- start\n it with `npx telora-daemon start`.\"\n- If MCP tools aren't callable: \"MCP server didn't load -- restart\n this Claude Code session.\"\n\n## Phase 2 \u2014 Opinionated guided flow\n\nAfter printing the green-light line, ask the user exactly ONE\nquestion, then act on the answer:\n\n> What capability do you want to build first?\n\nWait for the user's answer. Do not ask follow-ups about their tech\nstack, files in the repo, team size, or anything operational. Telora\nis an intent-shaped control plane: the user steers; the machine\ndecomposes.\n\nWhen the user answers:\n\n1. Create a strategy via `telora_product_strategy_create` for the\n bound product. Use the user's stated intent to write a clear name\n (3-7 words) and a 1-2 sentence description that captures the\n capability the user is going after -- not the implementation.\n2. Decompose the strategy into 2-4 phase-shaped deliveries via\n `telora_product_delivery_create`, in priority order. Each\n delivery represents a phase of *one* capability, not a task list.\n Good shapes: foundation/skeleton, primary feature, polish/extension.\n Bad shapes: a single delivery per technical layer (\"API\",\n \"UI\", \"tests\") -- that is a task split, not a phase split.\n3. Do NOT create issues under the deliveries. The team-lead agent\n that runs when the user fires execution will scope tasks. Your\n job is the planning skeleton.\n4. Surface the play button. Tell the user, in two short lines:\n\n - The strategy + deliveries are in Telora at\n `<teloraUrl-friendly>/products/<product_id>` -- use the\n `teloraUrl` from `daemon.json` (strip the trailing\n `functions/v1/...`-style path if present; the user-facing app\n lives at the same domain).\n - To start execution, open the strategy and assign an agent role\n -- that is the single high-leverage signal that puts the\n decomposition into motion.\n\nEnd there. Do not explain Telora's architecture. Do not propose what\nthe user should do next. The Play button is the next move.\n\n## Constraints (read these before you start)\n\n- Stay at the intent layer. If the user's answer is operational\n (\"set up TypeScript with strict mode\"), gently re-cast it into a\n capability shape (\"a TypeScript project skeleton with strict\n type-checking on every commit\") before decomposing.\n- Be brief. This is a script, not a conversation. Phase 1 is one\n line of output. Phase 2 is one question, then a few MCP calls and\n a two-line hand-off. No headings. No bullet lists in the user-\n facing output. No \"As an AI assistant...\".\n- Don't propose tasks. Deliveries only. The downstream team agent\n scopes tasks when execution starts.\n- If you can't proceed at any point, surface the specific failure\n and stop -- do not improvise around a broken chain.\n";
17
+ export declare const STARTER_PROMPT = "# Welcome to Telora.\n\nYou are inside a freshly connected Telora session. The Telora daemon is\nrunning, the MCP server is loaded, and a product is bound to this repo.\nThis message is the user's first turn -- treat it as your operating script\nfor the session.\n\nThere are two phases. Run them in order, no chat in between.\n\n## Phase 1 \u2014 Silent green-light validation\n\nValidate the chain end-to-end. Be terse. Do not explain what you are\ndoing while you do it.\n\n1. Read `daemon.json` from the daemon state dir. The state dir is\n `$TELORA_STATE_DIR` if set, otherwise `~/.telora`. Extract\n `teloraUrl`, `organizationId`, and the single product entry's\n `id` and `repoPath`. (The connect flow always writes a single-product\n config.)\n2. Call `telora_product_get` with the product id. Confirm it returns a\n product with a name. Capture the name -- you'll surface it in step 5.\n3. Confirm the daemon is running by checking that\n `<state-dir>/daemon.meta.json` exists. The state dir is\n `$TELORA_STATE_DIR` if set, otherwise `~/.telora`. (Use the Bash\n tool to test the path; do not call any heartbeat tool -- the file's\n presence is the canonical liveness signal.)\n4. Call `telora_product_strategy_list` with the product id. An empty\n list is fine. The point is to confirm an MCP write-class tool is\n reachable.\n5. Print exactly ONE line, in this shape:\n\n Connected to <Product Name> \u00B7 daemon running \u00B7 MCP tools loaded.\n\n No bullet points. No diagnostic dump. If every check passed, that\n one line is the entire output of phase 1.\n\nIf any check fails, do NOT print the green-light line. Print the\nspecific failure with a remediation hint, then stop. Do not enter\nphase 2 with a broken chain. Examples:\n\n- If `daemon.json` is missing from the state dir: \"No\n `daemon.json` in `$TELORA_STATE_DIR` (or `~/.telora`) -- re-run\n the connect one-liner from Telora.\"\n- If `telora_product_get` returns nothing: \"Product <id> is not\n reachable -- the token may have been bound to a deleted product.\"\n- If `daemon.meta.json` is missing: \"Daemon is not running -- start\n it with `npx telora-daemon start`.\"\n- If MCP tools aren't callable: \"MCP server didn't load -- restart\n this Claude Code session.\"\n\n## Phase 2 \u2014 Opinionated guided flow\n\nAfter printing the green-light line, ask the user exactly ONE\nquestion, then act on the answer:\n\n> What capability do you want to build first?\n\nWait for the user's answer. Do not ask follow-ups about their tech\nstack, files in the repo, team size, or anything operational. Telora\nis an intent-shaped control plane: the user steers; the machine\ndecomposes.\n\nWhen the user answers:\n\n1. Create a strategy via `telora_product_strategy_create` for the\n bound product. Use the user's stated intent to write a clear name\n (3-7 words) and a 1-2 sentence description that captures the\n capability the user is going after -- not the implementation.\n2. Decompose the strategy into 2-4 phase-shaped deliveries via\n `telora_product_delivery_create`, in priority order. Each\n delivery represents a phase of *one* capability, not a task list.\n Good shapes: foundation/skeleton, primary feature, polish/extension.\n Bad shapes: a single delivery per technical layer (\"API\",\n \"UI\", \"tests\") -- that is a task split, not a phase split.\n3. Do NOT create issues under the deliveries. The team-lead agent\n that runs when the user fires execution will scope tasks. Your\n job is the planning skeleton.\n4. Surface the play button. Tell the user, in two short lines:\n\n - The strategy + deliveries are in Telora at\n `<teloraUrl-friendly>/products/<product_id>` -- use the\n `teloraUrl` from the state-dir `daemon.json` (strip the trailing\n `functions/v1/...`-style path if present; the user-facing app\n lives at the same domain).\n - To start execution, open the strategy and assign an agent role\n -- that is the single high-leverage signal that puts the\n decomposition into motion.\n\nEnd there. Do not explain Telora's architecture. Do not propose what\nthe user should do next. The Play button is the next move.\n\n## Constraints (read these before you start)\n\n- Stay at the intent layer. If the user's answer is operational\n (\"set up TypeScript with strict mode\"), gently re-cast it into a\n capability shape (\"a TypeScript project skeleton with strict\n type-checking on every commit\") before decomposing.\n- Be brief. This is a script, not a conversation. Phase 1 is one\n line of output. Phase 2 is one question, then a few MCP calls and\n a two-line hand-off. No headings. No bullet lists in the user-\n facing output. No \"As an AI assistant...\".\n- Don't propose tasks. Deliveries only. The downstream team agent\n scopes tasks when execution starts.\n- If you can't proceed at any point, surface the specific failure\n and stop -- do not improvise around a broken chain.\n";
18
18
  //# sourceMappingURL=starter-prompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"starter-prompt.d.ts","sourceRoot":"","sources":["../../src/prompts/starter-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,cAAc,2wJAuG1B,CAAC"}
1
+ {"version":3,"file":"starter-prompt.d.ts","sourceRoot":"","sources":["../../src/prompts/starter-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,cAAc,s4JAyG1B,CAAC"}
@@ -28,7 +28,8 @@ There are two phases. Run them in order, no chat in between.
28
28
  Validate the chain end-to-end. Be terse. Do not explain what you are
29
29
  doing while you do it.
30
30
 
31
- 1. Read \`.telora/daemon.json\` from the current directory. Extract
31
+ 1. Read \`daemon.json\` from the daemon state dir. The state dir is
32
+ \`$TELORA_STATE_DIR\` if set, otherwise \`~/.telora\`. Extract
32
33
  \`teloraUrl\`, \`organizationId\`, and the single product entry's
33
34
  \`id\` and \`repoPath\`. (The connect flow always writes a single-product
34
35
  config.)
@@ -53,8 +54,9 @@ If any check fails, do NOT print the green-light line. Print the
53
54
  specific failure with a remediation hint, then stop. Do not enter
54
55
  phase 2 with a broken chain. Examples:
55
56
 
56
- - If \`.telora/daemon.json\` is missing: "No \`.telora/daemon.json\` --
57
- re-run the connect one-liner from Telora."
57
+ - If \`daemon.json\` is missing from the state dir: "No
58
+ \`daemon.json\` in \`$TELORA_STATE_DIR\` (or \`~/.telora\`) -- re-run
59
+ the connect one-liner from Telora."
58
60
  - If \`telora_product_get\` returns nothing: "Product <id> is not
59
61
  reachable -- the token may have been bound to a deleted product."
60
62
  - If \`daemon.meta.json\` is missing: "Daemon is not running -- start
@@ -93,7 +95,7 @@ When the user answers:
93
95
 
94
96
  - The strategy + deliveries are in Telora at
95
97
  \`<teloraUrl-friendly>/products/<product_id>\` -- use the
96
- \`teloraUrl\` from \`daemon.json\` (strip the trailing
98
+ \`teloraUrl\` from the state-dir \`daemon.json\` (strip the trailing
97
99
  \`functions/v1/...\`-style path if present; the user-facing app
98
100
  lives at the same domain).
99
101
  - To start execution, open the strategy and assign an agent role
@@ -1 +1 @@
1
- {"version":3,"file":"starter-prompt.js","sourceRoot":"","sources":["../../src/prompts/starter-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuG7B,CAAC"}
1
+ {"version":3,"file":"starter-prompt.js","sourceRoot":"","sources":["../../src/prompts/starter-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyG7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telora/daemon",
3
- "version": "0.14.21",
3
+ "version": "0.14.22",
4
4
  "description": "Agent orchestration daemon for Telora - spawns and manages Claude Code instances",
5
5
  "type": "module",
6
6
  "bin": {