@telora/daemon 0.14.20 → 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/README.md +3 -3
- package/build-info.json +2 -2
- package/dist/cli/connect.d.ts +1 -1
- package/dist/cli/connect.js +1 -1
- package/dist/prompts/starter-prompt.d.ts +1 -1
- package/dist/prompts/starter-prompt.d.ts.map +1 -1
- package/dist/prompts/starter-prompt.js +6 -4
- package/dist/prompts/starter-prompt.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,10 +20,10 @@ Key features:
|
|
|
20
20
|
npm install --save-dev @telora/daemon
|
|
21
21
|
|
|
22
22
|
# Or run directly with npx
|
|
23
|
-
npx @telora/daemon
|
|
23
|
+
npx -p @telora/daemon telora-daemon
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
> **Note:** The `.mcp.json` file for Claude Code integration is auto-generated by `npx telora-daemon init`.
|
|
26
|
+
> **Note:** The `.mcp.json` file for Claude Code integration is auto-generated by `npx -p @telora/daemon telora-daemon init`.
|
|
27
27
|
|
|
28
28
|
## Quick Start
|
|
29
29
|
|
|
@@ -31,7 +31,7 @@ npx @telora/daemon
|
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
33
|
cd /path/to/your/repo
|
|
34
|
-
npx @telora/daemon init
|
|
34
|
+
npx -p @telora/daemon telora-daemon init
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
The setup wizard will guide you through:
|
package/build-info.json
CHANGED
package/dist/cli/connect.d.ts
CHANGED
|
@@ -112,7 +112,7 @@ export declare function installDaemonIfNeeded(repoPath: string, io: ConnectIO):
|
|
|
112
112
|
*
|
|
113
113
|
* We deliberately do not reuse `startDaemonBackground` from daemon-process.ts
|
|
114
114
|
* because that resolves the entry point relative to *this* file -- which,
|
|
115
|
-
* during a fresh `npx --yes @telora/daemon connect ...` invocation, lives in
|
|
115
|
+
* during a fresh `npx --yes -p @telora/daemon telora-daemon connect ...` invocation, lives in
|
|
116
116
|
* a transient npx cache. Spawning from the local install gives the daemon
|
|
117
117
|
* a stable home for its lifetime.
|
|
118
118
|
*/
|
package/dist/cli/connect.js
CHANGED
|
@@ -195,7 +195,7 @@ export function installDaemonIfNeeded(repoPath, io) {
|
|
|
195
195
|
*
|
|
196
196
|
* We deliberately do not reuse `startDaemonBackground` from daemon-process.ts
|
|
197
197
|
* because that resolves the entry point relative to *this* file -- which,
|
|
198
|
-
* during a fresh `npx --yes @telora/daemon connect ...` invocation, lives in
|
|
198
|
+
* during a fresh `npx --yes -p @telora/daemon telora-daemon connect ...` invocation, lives in
|
|
199
199
|
* a transient npx cache. Spawning from the local install gives the daemon
|
|
200
200
|
* a stable home for its lifetime.
|
|
201
201
|
*/
|
|
@@ -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
|
|
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,
|
|
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
|
|
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
|
|
57
|
-
|
|
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
|
|
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"}
|