@rubytech/create-maxy-code 0.1.322 → 0.1.324
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/dist/index.js +55 -3
- package/package.json +1 -1
- package/payload/platform/plugins/admin/skills/insight/SKILL.md +1 -1
- package/payload/platform/plugins/admin/skills/platform-architecture/SKILL.md +36 -5
- package/payload/platform/plugins/docs/references/admin-ui.md +12 -0
- package/payload/platform/plugins/docs/references/deployment.md +19 -0
- package/payload/platform/plugins/docs/references/plugins-guide.md +4 -4
- package/payload/platform/plugins/memory/PLUGIN.md +0 -1
- package/payload/platform/plugins/memory/mcp/dist/index.js +0 -45
- package/payload/platform/plugins/memory/mcp/dist/index.js.map +1 -1
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js +6 -6
- package/payload/platform/plugins/memory/mcp/dist/lib/typed-edge-schema.js.map +1 -1
- package/payload/platform/plugins/notion-import/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/notion-import/PLUGIN.md +6 -6
- package/payload/platform/plugins/notion-import/skills/notion-import/SKILL.md +1 -1
- package/payload/platform/plugins/notion-import/skills/notion-import/references/databases.md +1 -1
- package/payload/platform/plugins/obsidian-import/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/obsidian-import/PLUGIN.md +5 -5
- package/payload/platform/plugins/obsidian-import/skills/obsidian-import/SKILL.md +1 -1
- package/payload/platform/plugins/substack-import/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/substack-import/PLUGIN.md +8 -8
- package/payload/platform/plugins/substack-import/skills/substack-import/SKILL.md +2 -2
- package/payload/platform/plugins/substack-import/skills/substack-import/references/posts.md +1 -1
- package/payload/platform/plugins/x-import/.claude-plugin/plugin.json +1 -1
- package/payload/platform/plugins/x-import/PLUGIN.md +5 -5
- package/payload/platform/plugins/x-import/skills/x-import/SKILL.md +1 -1
- package/payload/platform/scripts/check-no-esm-require.mjs +3 -0
- package/payload/platform/scripts/identity-forbidden-token-check.mjs +0 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js +0 -1
- package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/http-server.js +24 -7
- package/payload/platform/services/claude-session-manager/dist/http-server.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/index.js +3 -3
- package/payload/platform/services/claude-session-manager/dist/index.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-tail.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/jsonl-tail.js +8 -4
- package/payload/platform/services/claude-session-manager/dist/jsonl-tail.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts +3 -3
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js +13 -12
- package/payload/platform/services/claude-session-manager/dist/pty-spawner.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts +5 -4
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/rc-daemon.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/reaper.js +6 -6
- package/payload/platform/services/claude-session-manager/dist/reaper.js.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.d.ts.map +1 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js +0 -1
- package/payload/platform/services/claude-session-manager/dist/system-prompt.js.map +1 -1
- package/payload/platform/templates/specialists/agents/coding-assistant.md +1 -1
- package/payload/platform/templates/specialists/agents/database-operator.md +2 -6
- package/payload/platform/templates/specialists/agents/librarian.md +20 -7
- package/payload/server/power-health.cjs +129 -0
- package/payload/server/public/assets/AdminLoginScreens-BaNHSvDG.js +1 -0
- package/payload/server/public/assets/AdminShell-6Iq4co_0.js +1 -0
- package/payload/server/public/assets/{Checkbox-DjANdKoK.js → Checkbox-BoljWa0z.js} +1 -1
- package/payload/server/public/assets/OperatorConversations-DL9372pQ.css +1 -0
- package/payload/server/public/assets/OperatorConversations-yKFxglvV.js +9 -0
- package/payload/server/public/assets/{admin--FlkQOMu.js → admin-DgGttnBt.js} +1 -1
- package/payload/server/public/assets/{browser-vowQc0TJ.js → browser-BLoa93fm.js} +1 -1
- package/payload/server/public/assets/chat-BJ4229vV.js +1 -0
- package/payload/server/public/assets/data-BK_ggj-z.js +1 -0
- package/payload/server/public/assets/{graph-B-64Cq-y.js → graph-iNIIHeRn.js} +3 -3
- package/payload/server/public/assets/{graph-labels-Dtd2ckXH.js → graph-labels-IeLlsqB1.js} +1 -1
- package/payload/server/public/assets/operator-plsrZHSk.js +1 -0
- package/payload/server/public/assets/page-BOQHw8Fa.js +30 -0
- package/payload/server/public/assets/{public-CrFepd06.js → public-CuMZDmDF.js} +1 -1
- package/payload/server/public/browser.html +4 -4
- package/payload/server/public/chat.html +5 -5
- package/payload/server/public/data.html +4 -4
- package/payload/server/public/graph.html +6 -6
- package/payload/server/public/index.html +6 -6
- package/payload/server/public/operator.html +7 -7
- package/payload/server/public/public.html +5 -5
- package/payload/server/server-init.cjs +40 -0
- package/payload/server/server.js +36 -1
- package/payload/platform/plugins/memory/mcp/scripts/backfill-typed-edges.ts +0 -72
- package/payload/platform/templates/specialists/agents/archive-ingest-operator.md +0 -45
- package/payload/server/public/assets/AdminLoginScreens-D1X4M9wX.js +0 -1
- package/payload/server/public/assets/AdminShell-BGZ3d3gY.js +0 -1
- package/payload/server/public/assets/OperatorConversations-BkitSIiT.js +0 -9
- package/payload/server/public/assets/OperatorConversations-C-eFXT7w.css +0 -1
- package/payload/server/public/assets/chat-Cw6rUWiC.js +0 -1
- package/payload/server/public/assets/data-9ArhwX1q.js +0 -1
- package/payload/server/public/assets/operator-Cqn1Ne60.js +0 -1
- package/payload/server/public/assets/page-DQ5D6Dg9.js +0 -30
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: substack-import
|
|
3
|
-
description: "Import a Substack 'Export your data' archive into the Maxy Neo4j graph. Skill-only plugin owned by the
|
|
3
|
+
description: "Import a Substack 'Export your data' archive into the Maxy Neo4j graph. Skill-only plugin owned by the librarian specialist. Opt-in per brand — not enabled by default."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
6
|
embed: false
|
|
7
|
-
specialist:
|
|
7
|
+
specialist: librarian
|
|
8
8
|
metadata: {"platform":{"optional":true,"pluginKey":"substack-import"}}
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Substack Import
|
|
12
12
|
|
|
13
|
-
Ingests a Substack "Export your data" archive (extracted directory or zip — `posts.csv` + per-post HTML bodies under `posts/`, `subscribers.csv`, an engagement events file when present, and an `images/` tree referenced from post bodies) into the Maxy Neo4j graph. Skill-only plugin — no MCP server, no admin tools added. The skill runs under the `specialists:
|
|
13
|
+
Ingests a Substack "Export your data" archive (extracted directory or zip — `posts.csv` + per-post HTML bodies under `posts/`, `subscribers.csv`, an engagement events file when present, and an `images/` tree referenced from post bodies) into the Maxy Neo4j graph. Skill-only plugin — no MCP server, no admin tools added. The skill runs under the `specialists:librarian` specialist, which owns foreground ingest of documents, transcripts, LinkedIn, and every bulk external archive.
|
|
14
14
|
|
|
15
15
|
## When this applies
|
|
16
16
|
|
|
17
|
-
The admin agent delegates to `specialists:
|
|
17
|
+
The admin agent delegates to `specialists:librarian` when the operator drops an extracted Substack archive directory (or a `<publication>.zip` path) into chat and asks to import it. The specialist runs the skill's owner + publication confirmation flow before any CSV or HTML body is read, then dispatches the two existing write surfaces:
|
|
18
18
|
|
|
19
19
|
- **Posts** → per-post Task-tool dispatch to `librarian`, which loads `document-ingest` and writes one `:KnowledgeDocument {source:'substack', kind:'substack-post', substackPostId}` per essay. `:Section` chunking is owned by `document-ingest`'s in-turn typed-section classification, not this plugin.
|
|
20
|
-
- **Subscribers** → `
|
|
20
|
+
- **Subscribers** → `librarian` directly MERGEs a single `:KnowledgeDocument {kind:'substack-subscriber-roster'}` via `memory-write`, then per-row `memory-write` for each subscriber `:Person` (MERGEd on `(accountId, email)`), then `:MENTIONS {mentionContext:'substack-subscription', tier, subscribedAt, unsubscribedAt?, totalOpens?, totalClicks?, lastOpenedAt?, lastClickedAt?, engagementWindowDays?}` from the roster KD to each `:Person`. Engagement aggregates come from `email_activity.csv` (filename varies by export — the skill tries a known list).
|
|
21
21
|
|
|
22
22
|
## What this plugin is not
|
|
23
23
|
|
|
24
24
|
- **Not a new graph writer.** Every write routes through existing surfaces — `document-ingest` (via librarian) for posts, `memory-write` for subscribers, roster KD, and images. No new MCP tool, no new archive-write handler.
|
|
25
25
|
- **Not a new label.** No `:SubstackPublication` anchor; `publicationName` is a short-string property on every post KD and the roster KD. No bespoke `:Post`, `:Subscriber`, `:Subscription`. Posts are `:KnowledgeDocument`, subscribers are `:Person`, images are `:DigitalDocument`.
|
|
26
|
-
- **Not a new edge type.** The closed-edge rule (`
|
|
26
|
+
- **Not a new edge type.** The closed-edge rule (`librarian.md`) forbids inventing `:SUBSCRIBED_TO`. Subscription is `:MENTIONS {mentionContext:'substack-subscription', tier, ...engagement}` from the roster KD to each `:Person`. Per-event detail is intentionally aggregated to per-edge totals.
|
|
27
27
|
- **Not a live Substack client.** Archive-only — no RSS poll, no API, no scraper. Comments are not in the export and not in scope.
|
|
28
28
|
|
|
29
29
|
## Relationship to other plugins
|
|
30
30
|
|
|
31
31
|
- **memory** — the underlying Cypher-write surface used by the skill (`memory-write`, `memory-update`, `memory-search`). Every node carries `source='substack'` + `createdByAgent='substack-import'` for provenance, plus `importId` (UUID per skill run) so a future dream-cycle pass can detect orphans or selectively re-ingest.
|
|
32
|
-
- **document-ingest** (memory skill, run by librarian) — owns the per-post `:KnowledgeDocument` writes and `:Section` chunking. Dispatched
|
|
33
|
-
- **
|
|
32
|
+
- **document-ingest** (memory skill, run by librarian) — owns the per-post `:KnowledgeDocument` writes and `:Section` chunking. Dispatched by `librarian` via the Task tool with `sourceType: 'substack'` and a synthetic stable `attachmentId = "substack-post-${substackPostId}"`.
|
|
33
|
+
- **librarian specialist** — owns execution. See the delegation clause in [librarian.md](../../templates/specialists/agents/librarian.md).
|
|
34
34
|
- **x-import** — sibling skill-only ingest plugin under the same specialist. The two share no code; the pattern (provenance confirmation → walk → bulk gate → write through existing surfaces) is the same.
|
|
@@ -5,7 +5,7 @@ description: Ingest an extracted Substack "Export your data" archive into the gr
|
|
|
5
5
|
|
|
6
6
|
# Substack Import
|
|
7
7
|
|
|
8
|
-
**Invoked from `specialists:
|
|
8
|
+
**Invoked from `specialists:librarian`** — the admin agent dispatches the librarian when the operator hands over a Substack archive, and the specialist loads this skill. The admin agent never calls this skill directly.
|
|
9
9
|
|
|
10
10
|
One Substack archive becomes:
|
|
11
11
|
|
|
@@ -83,7 +83,7 @@ See [posts.md](references/posts.md) for HTML-to-markdown body conversion rules a
|
|
|
83
83
|
|
|
84
84
|
**3b. Roster KD + per-subscriber `:Person` + `:MENTIONS` edges.**
|
|
85
85
|
|
|
86
|
-
`
|
|
86
|
+
`librarian` runs these writes directly using its `memory-write` tool — no dispatch needed.
|
|
87
87
|
|
|
88
88
|
1. **Read engagement aggregates** (once, before the per-subscriber loop). If `$engagementFile` is non-null, parse it per [engagement.md](references/engagement.md) and build an in-memory map `emailToAggregates: { email -> { totalOpens, totalClicks, lastOpenedAt, lastClickedAt, engagementWindowDays } }`. If `$engagementFile` is null, emit `[substack-import:warn] no-engagement-file` once and use an empty map.
|
|
89
89
|
|
|
@@ -48,7 +48,7 @@ When detected, set `bodyTruncated=true` on the dispatch brief's `extraProperties
|
|
|
48
48
|
|
|
49
49
|
## Inline `@person` mentions
|
|
50
50
|
|
|
51
|
-
Substack post bodies occasionally reference `@handle`-style mentions. `document-ingest`'s in-turn typed-section classification handles these — the dispatch brief does not pre-resolve them. Per `
|
|
51
|
+
Substack post bodies occasionally reference `@handle`-style mentions. `document-ingest`'s in-turn typed-section classification handles these — the dispatch brief does not pre-resolve them. Per `librarian.md`'s account-isolation rule, mentions resolve against `:Person {accountId}` only; no auto-create from mention text.
|
|
52
52
|
|
|
53
53
|
## Dispatch brief shape (the Task-tool input the operator builds)
|
|
54
54
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "x-import",
|
|
3
|
-
"description": "Import an X (Twitter) archive into the Maxy Neo4j graph. Skill-only plugin owned by the
|
|
3
|
+
"description": "Import an X (Twitter) archive into the Maxy Neo4j graph. Skill-only plugin owned by the librarian specialist. Opt-in per brand — not enabled by default.",
|
|
4
4
|
"version": "0.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Rubytech LLC"
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: x-import
|
|
3
|
-
description: "Import an X (Twitter) archive into the Maxy Neo4j graph. Skill-only plugin owned by the
|
|
3
|
+
description: "Import an X (Twitter) archive into the Maxy Neo4j graph. Skill-only plugin owned by the librarian specialist. Opt-in per brand — not enabled by default."
|
|
4
4
|
tools: []
|
|
5
5
|
always: false
|
|
6
6
|
embed: false
|
|
7
|
-
specialist:
|
|
7
|
+
specialist: librarian
|
|
8
8
|
metadata: {"platform":{"optional":true,"pluginKey":"x-import"}}
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# X Import
|
|
12
12
|
|
|
13
|
-
Ingests an X (formerly Twitter) Basic Data Export (extracted ZIP — a directory of `.js` shims plus media subdirectories) into the Maxy Neo4j graph. Skill-only plugin — no MCP server, no admin tools added. The skill runs under the `specialists:
|
|
13
|
+
Ingests an X (formerly Twitter) Basic Data Export (extracted ZIP — a directory of `.js` shims plus media subdirectories) into the Maxy Neo4j graph. Skill-only plugin — no MCP server, no admin tools added. The skill runs under the `specialists:librarian` specialist, which owns foreground ingest of documents, transcripts, LinkedIn, and every bulk external archive.
|
|
14
14
|
|
|
15
15
|
## When this applies
|
|
16
16
|
|
|
17
|
-
The admin agent delegates to `specialists:
|
|
17
|
+
The admin agent delegates to `specialists:librarian` when the operator drops an extracted X archive directory (or a `twitter-<handle>-archive.zip` reference) into chat. The specialist runs the skill's owner + participant confirmation flow before any `.js` shim is read, then dispatches the two existing ingestion surfaces:
|
|
18
18
|
|
|
19
19
|
- **Tweet stream** → `document-ingest` produces one `:KnowledgeDocument` with `source='x'` whose body is the verbatim chronological transcript of the operator's own tweets, replies, and quote-tweet authorship. `:Section` chunking is owned by `memory-classify` (document mode).
|
|
20
20
|
- **Direct messages** → `conversation-archive-ingest.sh --source x-dm` once per distinct `dmConversation`, producing one `:ConversationArchive` per participant set (keyed on `conversationIdentity`). Senders confirm to existing `:AdminUser` / `:Person` nodes — never auto-created.
|
|
@@ -30,4 +30,4 @@ The admin agent delegates to `specialists:database-operator` when the operator d
|
|
|
30
30
|
- **memory** — the underlying graph-write surface used by the skill (`mcp__plugin_memory_memory__memory-write` etc.). The skill passes `source='x'` / `source='x-dm'` and `createdByAgent='x-import'` for provenance on every write.
|
|
31
31
|
- **document-ingest** (memory skill) — owns the tweet-stream KnowledgeDocument writes. `:Section` classification is its responsibility, not this plugin's.
|
|
32
32
|
- **conversation-archive** (memory skill) — owns the DM transcript writes (`:ConversationArchive` keyed on `conversationIdentity`). The `x-dm` enum entry on `CONVERSATION_SOURCES` and the sibling normaliser in `platform/plugins/memory/mcp/src/lib/conversation-normalisers/x-dm.ts` are the only new code outside this plugin.
|
|
33
|
-
- **
|
|
33
|
+
- **librarian specialist** — owns execution. See [platform/templates/specialists/agents/librarian.md](../../templates/specialists/agents/librarian.md) skill-routing table.
|
|
@@ -5,7 +5,7 @@ description: Ingest an extracted X (Twitter) archive directory into the graph as
|
|
|
5
5
|
|
|
6
6
|
# X Import
|
|
7
7
|
|
|
8
|
-
**Invoked from `specialists:
|
|
8
|
+
**Invoked from `specialists:librarian`** — the admin agent dispatches the librarian when the operator hands over an X archive, and the librarian loads this skill. The admin agent never calls this skill directly.
|
|
9
9
|
|
|
10
10
|
One X archive becomes:
|
|
11
11
|
|
|
@@ -51,6 +51,9 @@ const ALLOWLIST = new Set([
|
|
|
51
51
|
// (server-init-line-stamper.cjs); the test loads it via the sanctioned
|
|
52
52
|
// createRequire(import.meta.url) ESM→CJS bridge, not a raw require.
|
|
53
53
|
'platform/ui/app/lib/__tests__/server-init-line-stamper.test.ts',
|
|
54
|
+
// The module under test is a pure .cjs preload (power-health.cjs), loaded via
|
|
55
|
+
// the sanctioned createRequire(import.meta.url) ESM→CJS bridge, not a raw require.
|
|
56
|
+
'platform/ui/app/lib/__tests__/power-health.test.ts',
|
|
54
57
|
// Same vi.hoisted pattern: Task 829's operator-domains test builds a tmpdir
|
|
55
58
|
// before the module's `../paths` mock fires, to redirect MAXY_DIR off the
|
|
56
59
|
// operator's real home config.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-tool-names.generated.d.ts","sourceRoot":"","sources":["../src/canonical-tool-names.generated.ts"],"names":[],"mappings":"AAQA,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAkB7C,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"canonical-tool-names.generated.d.ts","sourceRoot":"","sources":["../src/canonical-tool-names.generated.ts"],"names":[],"mappings":"AAQA,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAkB7C,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAgMtD,CAAA"}
|
package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js
CHANGED
|
@@ -139,7 +139,6 @@ export const CANONICAL_MAXY_TOOL_NAMES = [
|
|
|
139
139
|
"mcp__plugin_memory_memory__memory-restore",
|
|
140
140
|
"mcp__plugin_memory_memory__memory-review-queue",
|
|
141
141
|
"mcp__plugin_memory_memory__memory-search",
|
|
142
|
-
"mcp__plugin_memory_memory__memory-typed-edge-pass",
|
|
143
142
|
"mcp__plugin_memory_memory__memory-update",
|
|
144
143
|
"mcp__plugin_memory_memory__memory-update-by-name",
|
|
145
144
|
"mcp__plugin_memory_memory__memory-write",
|
package/payload/platform/services/claude-session-manager/dist/canonical-tool-names.generated.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canonical-tool-names.generated.js","sourceRoot":"","sources":["../src/canonical-tool-names.generated.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,kEAAkE;AAClE,yDAAyD;AACzD,kFAAkF;AAClF,EAAE;AACF,yEAAyE;AACzE,6DAA6D;AAE7D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,OAAO;IACP,KAAK;IACL,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,cAAc;IACd,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,UAAU;IACV,SAAS;IACT,UAAU;IACV,MAAM;IACN,WAAW;CACZ,CAAA;AAED,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,yCAAyC;IACzC,yCAAyC;IACzC,yCAAyC;IACzC,sCAAsC;IACtC,yCAAyC;IACzC,wCAAwC;IACxC,oCAAoC;IACpC,qCAAqC;IACrC,uCAAuC;IACvC,2CAA2C;IAC3C,4CAA4C;IAC5C,qCAAqC;IACrC,yCAAyC;IACzC,4CAA4C;IAC5C,oCAAoC;IACpC,sCAAsC;IACtC,0CAA0C;IAC1C,uCAAuC;IACvC,sCAAsC;IACtC,sDAAsD;IACtD,mDAAmD;IACnD,6CAA6C;IAC7C,wCAAwC;IACxC,yCAAyC;IACzC,qCAAqC;IACrC,uCAAuC;IACvC,sCAAsC;IACtC,wCAAwC;IACxC,+BAA+B;IAC/B,qCAAqC;IACrC,sCAAsC;IACtC,yCAAyC;IACzC,4CAA4C;IAC5C,uDAAuD;IACvD,+CAA+C;IAC/C,2CAA2C;IAC3C,gDAAgD;IAChD,oDAAoD;IACpD,4CAA4C;IAC5C,+CAA+C;IAC/C,+CAA+C;IAC/C,gDAAgD;IAChD,6CAA6C;IAC7C,6CAA6C;IAC7C,iDAAiD;IACjD,oDAAoD;IACpD,+CAA+C;IAC/C,2CAA2C;IAC3C,2CAA2C;IAC3C,+CAA+C;IAC/C,+CAA+C;IAC/C,+CAA+C;IAC/C,8CAA8C;IAC9C,+CAA+C;IAC/C,6CAA6C;IAC7C,+CAA+C;IAC/C,+CAA+C;IAC/C,6CAA6C;IAC7C,6CAA6C;IAC7C,sCAAsC;IACtC,2CAA2C;IAC3C,2CAA2C;IAC3C,sCAAsC;IACtC,4CAA4C;IAC5C,uCAAuC;IACvC,4CAA4C;IAC5C,8CAA8C;IAC9C,qCAAqC;IACrC,sCAAsC;IACtC,uCAAuC;IACvC,qCAAqC;IACrC,sCAAsC;IACtC,uCAAuC;IACvC,qDAAqD;IACrD,sDAAsD;IACtD,uDAAuD;IACvD,wDAAwD;IACxD,iEAAiE;IACjE,kEAAkE;IAClE,6DAA6D;IAC7D,8CAA8C;IAC9C,wDAAwD;IACxD,gDAAgD;IAChD,qDAAqD;IACrD,sDAAsD;IACtD,wDAAwD;IACxD,wCAAwC;IACxC,wCAAwC;IACxC,iDAAiD;IACjD,wDAAwD;IACxD,0DAA0D;IAC1D,0CAA0C;IAC1C,6CAA6C;IAC7C,wCAAwC;IACxC,mDAAmD;IACnD,+CAA+C;IAC/C,mDAAmD;IACnD,0CAA0C;IAC1C,kDAAkD;IAClD,8CAA8C;IAC9C,oDAAoD;IACpD,kDAAkD;IAClD,+CAA+C;IAC/C,mDAAmD;IACnD,2CAA2C;IAC3C,qDAAqD;IACrD,+CAA+C;IAC/C,sDAAsD;IACtD,gDAAgD;IAChD,2CAA2C;IAC3C,gDAAgD;IAChD,0CAA0C;IAC1C,
|
|
1
|
+
{"version":3,"file":"canonical-tool-names.generated.js","sourceRoot":"","sources":["../src/canonical-tool-names.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAa3B,OAAO,EAiBL,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAsBzB,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAA;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAgFhE,eAAO,MAAM,kBAAkB,QAA2B,CAAA;AAS1D,eAAO,MAAM,4BAA4B,QAAS,CAAA;AAIlD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7E;;qEAEiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,SAAS,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,WAAW,CAAA;IAC/B,eAAe,EAAE,aAAa,CAAA;IAC9B;kFAC8E;IAC9E,cAAc,EAAE,cAAc,CAAA;IAC9B;;gFAE4E;IAC5E,cAAc,EAAE,cAAc,CAAA;IAC9B;;;6BAGyB;IACzB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC;;gFAE4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAgHD,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpG;AAgBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAUD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMvE;AAMD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAER;AAkCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5F;AAwJD;;;kEAGkE;AAClE,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;;+CAG2C;IAC3C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD,CAAA;AAmBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAa3B,OAAO,EAiBL,KAAK,SAAS,EAEf,MAAM,kBAAkB,CAAA;AAsBzB,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAA;AAEvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAgFhE,eAAO,MAAM,kBAAkB,QAA2B,CAAA;AAS1D,eAAO,MAAM,4BAA4B,QAAS,CAAA;AAIlD,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC7E;;qEAEiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,SAAS,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,iBAAiB,EAAE,MAAM,CAAA;IACzB,kBAAkB,EAAE,WAAW,CAAA;IAC/B,eAAe,EAAE,aAAa,CAAA;IAC9B;kFAC8E;IAC9E,cAAc,EAAE,cAAc,CAAA;IAC9B;;gFAE4E;IAC5E,cAAc,EAAE,cAAc,CAAA;IAC9B;;;6BAGyB;IACzB,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC;;gFAE4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAgHD,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpG;AAgBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE1D;AAUD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAMvE;AAMD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,GACtB,MAAM,CAER;AAkCD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe5F;AAwJD;;;kEAGkE;AAClE,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG;IAC3B,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACpD;;;+CAG2C;IAC3C,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAChD,CAAA;AAmBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAu3EpD"}
|
|
@@ -2034,6 +2034,12 @@ export function buildHttpApp(deps) {
|
|
|
2034
2034
|
// `--resume` is the continue-this-conversation flag.
|
|
2035
2035
|
const existingJsonlPath = sessionId ? findExistingJsonlForSessionId(deps.claudeConfigDir, sessionId) : null;
|
|
2036
2036
|
const mode = existingJsonlPath ? 'resume' : 'fresh';
|
|
2037
|
+
// Task 969 — the new-session picker's model/effort apply only to a genuinely
|
|
2038
|
+
// fresh ADMIN spawn (the /chat popover posts role:'admin'). Gating on the
|
|
2039
|
+
// admin role as well as freshness keeps any other fresh spawn (LinkedIn
|
|
2040
|
+
// ingest, public, specialist, channel cold-start) on the settings defaults
|
|
2041
|
+
// even if a future caller were to put model/effort on its body.
|
|
2042
|
+
const freshAdminLevers = mode === 'fresh' && rcRole === 'admin';
|
|
2037
2043
|
const argv = ['--remote-control'];
|
|
2038
2044
|
// Task 945 — `name` is the row's display label, never a prompt. It must NOT
|
|
2039
2045
|
// be pushed as a positional: the CLI treats a bare positional as the initial
|
|
@@ -2059,6 +2065,12 @@ export function buildHttpApp(deps) {
|
|
|
2059
2065
|
}
|
|
2060
2066
|
else if (sessionId) {
|
|
2061
2067
|
argv.push(mode === 'resume' ? '--resume' : '--session-id', sessionId);
|
|
2068
|
+
// Task 969 — a fresh new-session spawn (the /chat new-session popover)
|
|
2069
|
+
// carries the picked model as the canonical --model flag. A resume keeps
|
|
2070
|
+
// the model its JSONL already ran under, and an absent/invalid model
|
|
2071
|
+
// (reseatModel null) leaves the settings.json default model in force.
|
|
2072
|
+
if (freshAdminLevers && reseatModel)
|
|
2073
|
+
argv.push('--model', reseatModel);
|
|
2062
2074
|
}
|
|
2063
2075
|
// Task 592 — per-spawn bypass-permissions waiver. The brand settings.json
|
|
2064
2076
|
// carries `defaultMode: bypassPermissions` (Task 583); without this flag
|
|
@@ -2067,12 +2079,14 @@ export function buildHttpApp(deps) {
|
|
|
2067
2079
|
// waived so the disclaimer is suppressed whatever mode the session resolves
|
|
2068
2080
|
// to. Per Task 574 doctrine the waiver is per-spawn (never written into
|
|
2069
2081
|
// settings.json / .claude.json, which would permanently waive it).
|
|
2070
|
-
// Task 928
|
|
2071
|
-
// settings (never the shared settings.json — that
|
|
2072
|
-
// spawn's effort fleet-wide).
|
|
2073
|
-
// valid effort
|
|
2082
|
+
// Task 928 (fork) / Task 969 (fresh new-session) — the picked effort rides
|
|
2083
|
+
// the SAME per-spawn inline settings (never the shared settings.json — that
|
|
2084
|
+
// would change every later spawn's effort fleet-wide). Set on a fork with a
|
|
2085
|
+
// valid effort, or on a fresh new-session spawn carrying a picked effort; a
|
|
2086
|
+
// resume keeps its settings-resolved effort, and an absent effort leaves it
|
|
2087
|
+
// unset (the harness default).
|
|
2074
2088
|
const inlineSettings = { skipDangerousModePermissionPrompt: true, skipAutoPermissionPrompt: true };
|
|
2075
|
-
if (forkFromSessionId !== null && reseatEffort)
|
|
2089
|
+
if ((forkFromSessionId !== null || freshAdminLevers) && reseatEffort)
|
|
2076
2090
|
inlineSettings.effortLevel = reseatEffort;
|
|
2077
2091
|
argv.push('--settings', JSON.stringify(inlineSettings));
|
|
2078
2092
|
// Task 677 P2 — admin WhatsApp native channel. When the caller supplies
|
|
@@ -2279,8 +2293,11 @@ export function buildHttpApp(deps) {
|
|
|
2279
2293
|
// settings.json (pinned to Opus/medium by the rc-daemon); a fork rides its
|
|
2280
2294
|
// picked values. Surfaced on the lifeline so the admin-param audit can assert
|
|
2281
2295
|
// model=claude-opus-4-8[1m] effort=medium without reconstructing the argv.
|
|
2282
|
-
|
|
2283
|
-
|
|
2296
|
+
// Task 969 — a fresh new-session spawn carrying picked levers runs under
|
|
2297
|
+
// them too (not just a fork), so the sidecar + lifeline + the /chat params
|
|
2298
|
+
// row report the model/effort the session actually launched on.
|
|
2299
|
+
const effectiveRcModel = (forkFromSessionId !== null || freshAdminLevers) && reseatModel ? reseatModel : resolveSettingsModel(deps.claudeConfigDir);
|
|
2300
|
+
const effectiveRcEffort = (forkFromSessionId !== null || freshAdminLevers) && reseatEffort ? reseatEffort : resolveSettingsEffort(deps.claudeConfigDir);
|
|
2284
2301
|
// Step 2 — the exact claude argv (the inner command). The systemd-run
|
|
2285
2302
|
// wrap is composed by the spawnPty adapter; logging the inner argv
|
|
2286
2303
|
// here is enough for an operator to reproduce by hand. The wrapped
|