@rubytech/create-maxy-code 0.1.464 → 0.1.466

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/create-maxy-code",
3
- "version": "0.1.464",
3
+ "version": "0.1.466",
4
4
  "description": "Install Maxy — AI for Productive People",
5
5
  "bin": {
6
6
  "create-maxy-code": "./dist/index.js"
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAC9C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIvD,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;qEAEqE;AACrE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAItD,CAAC;AAEF;+DAC+D;AAC/D,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;mCAGmC;AACnC,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA4C,CAAC;AAC5F,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;qCAKqC;AACrC,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;wDAIwD;AACxD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAaD,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,0EAA2E,CAAC;AACzG,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED,sDAAsD;AACtD,eAAO,MAAM,aAAa,6CAA8C,CAAC;AACzE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEjE;AASD;kFACkF;AAClF,eAAO,MAAM,sBAAsB,qFAA4C,CAAC;AAChF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;oEACoE;AACpE,eAAO,MAAM,qBAAqB,4DAA6C,CAAC;AAChF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE;;;;;yCAKyC;AACzC,eAAO,MAAM,yBAAyB,oDAAqC,CAAC;AAC5E,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,qBAAqB,CAErF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAC9C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAO9C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIvD,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;qEAEqE;AACrE,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAItD,CAAC;AAEF;+DAC+D;AAC/D,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;mCAGmC;AACnC,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAA4C,CAAC;AAC5F,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;qCAKqC;AACrC,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;wDAIwD;AACxD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAaD,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,0EAA2E,CAAC;AACzG,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AAED,sDAAsD;AACtD,eAAO,MAAM,aAAa,6CAA8C,CAAC;AACzE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEjE;AASD;kFACkF;AAClF,eAAO,MAAM,sBAAsB,qFAA4C,CAAC;AAChF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E;oEACoE;AACpE,eAAO,MAAM,qBAAqB,4DAA6C,CAAC;AAChF,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAExE;;;;;yCAKyC;AACzC,eAAO,MAAM,yBAAyB,oDAAqC,CAAC;AAC5E,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,qBAAqB,CAErF"}
@@ -14,13 +14,18 @@ exports.isEffortLevel = isEffortLevel;
14
14
  exports.isNewSessionEffortLevel = isNewSessionEffortLevel;
15
15
  // Opus defaults to the 1M-context variant ([1m] is Claude Code's
16
16
  // context-extension suffix, valid in settings.json "model" and agent
17
- // frontmatter); Sonnet/Haiku stay on the standard 200k window.
17
+ // frontmatter).
18
18
  exports.OPUS_MODEL = "claude-opus-4-8[1m]";
19
19
  exports.SONNET_MODEL = "claude-sonnet-5";
20
20
  exports.HAIKU_MODEL = "claude-haiku-4-5";
21
+ // Each value is the model's published max input tokens (its context window),
22
+ // taken from Anthropic's model documentation on 2026-07-17: Opus 4.8 and
23
+ // Sonnet 5 are 1M, Haiku 4.5 is 200k. Not inferred from observed usage. When
24
+ // adding a model, read its window from the Models API
25
+ // (GET /v1/models/{id} -> max_input_tokens) rather than assuming a family default.
21
26
  exports.MODEL_CONTEXT_WINDOW = {
22
27
  [exports.OPUS_MODEL]: 1_000_000,
23
- [exports.SONNET_MODEL]: 200_000,
28
+ [exports.SONNET_MODEL]: 1_000_000,
24
29
  [exports.HAIKU_MODEL]: 200_000,
25
30
  };
26
31
  /** Look up context window size; defaults to 200k for unknown models. */
@@ -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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"}
@@ -4,14 +4,19 @@
4
4
 
5
5
  // Opus defaults to the 1M-context variant ([1m] is Claude Code's
6
6
  // context-extension suffix, valid in settings.json "model" and agent
7
- // frontmatter); Sonnet/Haiku stay on the standard 200k window.
7
+ // frontmatter).
8
8
  export const OPUS_MODEL = "claude-opus-4-8[1m]";
9
9
  export const SONNET_MODEL = "claude-sonnet-5";
10
10
  export const HAIKU_MODEL = "claude-haiku-4-5";
11
11
 
12
+ // Each value is the model's published max input tokens (its context window),
13
+ // taken from Anthropic's model documentation on 2026-07-17: Opus 4.8 and
14
+ // Sonnet 5 are 1M, Haiku 4.5 is 200k. Not inferred from observed usage. When
15
+ // adding a model, read its window from the Models API
16
+ // (GET /v1/models/{id} -> max_input_tokens) rather than assuming a family default.
12
17
  export const MODEL_CONTEXT_WINDOW: Record<string, number> = {
13
18
  [OPUS_MODEL]: 1_000_000,
14
- [SONNET_MODEL]: 200_000,
19
+ [SONNET_MODEL]: 1_000_000,
15
20
  [HAIKU_MODEL]: 200_000,
16
21
  };
17
22
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: platform-architecture
3
3
  description: Use when grounding any documented-surface claim about what Maxy ships — plugins, skills, specialists, install/deploy flows, internals. This is the install catalogue, not evidence of what is enabled on the current account. For install state on this account, call `capabilities-here`; for documented surface, cite the `Source:` URL inline.
4
- content-hash: sha256:3018a1f6210500651378443bc1cee4296320a013c25ecde8297d627eb6cf8584
4
+ content-hash: sha256:9da6e0e557ca5dd0eca494d394dc2e38504ba7d8ec117793fa1a707d71360233
5
5
  brand: maxy-code
6
6
  product-name: Maxy
7
7
  ---
@@ -1941,13 +1941,22 @@ admin session can see a connector-backed surface. A specialist the admin spawns
1941
1941
  separate, short-lived client with a fixed tool set that does not include your connectors, so it cannot
1942
1942
  see them at all.
1943
1943
 
1944
- This matters most for your calendar. Your real calendar often lives on a connector (Google Calendar,
1945
- Microsoft 365). The admin session sees it; a specialist does not. So the admin session is the one that
1946
- answers what is on your calendar, judges whether you are free, and makes any booking that affects your
1947
- availability, rather than handing that to a specialist that would answer from the built-in calendar
1948
- alone and miss the connector. A specialist still helps with mechanical calendar chores the admin hands
1949
- it with the facts already worked out, such as turning named events into a calendar file. The same rule
1950
- holds for any other connector: the admin session is the seat that reasons over it.
1944
+ This matters most for your calendar. When a session holds connector tools, your real calendar often
1945
+ lives on a connector (Google Calendar, Microsoft 365). The admin session sees it; a specialist does
1946
+ not. So the admin session is the one that answers what is on your calendar, judges whether you are free,
1947
+ and makes any booking that affects your availability, rather than handing that to a specialist that
1948
+ would answer from the built-in calendar alone and miss the connector. A specialist still helps with
1949
+ mechanical calendar chores the admin hands it with the facts already worked out, such as turning named
1950
+ events into a calendar file. The same rule holds for any other connector: the admin session is the seat
1951
+ that reasons over it.
1952
+
1953
+ A session that holds no connector tools cannot use a connector at all, and a connector is per client, so
1954
+ a client sub-account session can never hold one. Such a session must not recommend connecting a
1955
+ claude.ai connector for the calendar. Its calendar capability is the internal scheduling calendar
1956
+ (`schedule-event`, `schedule-list`, and the rest) for live create and manage, plus a one-time
1957
+ `schedule-archive-ics` import that pulls an existing Google, Outlook, or Apple calendar into the graph
1958
+ from an `.ics` export. Full live per-account Google Calendar integration is planned;
1959
+ until it ships, the internal calendar plus `.ics` import is the calendar path for a no-connector seat.
1951
1960
 
1952
1961
  ## What this is not
1953
1962
 
@@ -30,7 +30,8 @@ and never reassigned. There is no delegation.
30
30
 
31
31
  1. **In the client account's own session**, create the bucket with `storage-r2-bucket-create`, named
32
32
  from `bin/cf-store-name.sh <accountId> <purpose>`. It registers to that account.
33
- 2. **In the admin session**, do everything else: the D1 database, the assembly, and the deploy.
33
+ 2. **In the admin session**, do everything else: the D1 database, the assembly, recording the Pages
34
+ project to the client account with `storage-pages-adopt`, and then the deploy.
34
35
 
35
36
  If the admin creates the bucket instead, it registers to the house, and the client account's own
36
37
  ingestion sweep is denied `cross-account` against its own files — permanently, because ownership is
@@ -84,6 +85,14 @@ Name the D1 database with the same `bin/cf-store-name.sh` scheme as the bucket,
84
85
 
85
86
  ## Deploy through site-deploy
86
87
 
88
+ `storage-pages-deploy` refuses a project with no owner on record, so record the ownership first. In
89
+ the admin session, run `storage-pages-adopt` with the project name and the client's account id. This
90
+ records the project-to-account mapping in the broker's house-held registry. It is not a write into
91
+ the client's account graph, and it needs no session inside the client account. It is house admin
92
+ only, so it runs from the admin session; the client account's own session is refused `not-house-admin`,
93
+ which is the boundary working, not a fault to route around. Only once the project has a recorded owner
94
+ can the deploy publish it.
95
+
87
96
  Hand the assembled tree to `cloudflare:site-deploy`. Both bindings — D1 and R2 — are declarative
88
97
  config in `wrangler.toml`, carried in the deploy payload under the Pages scope; the deploy needs no
89
98
  R2 token. Only the bucket *creation* in step 1 needs R2 write, and the broker holds that.
@@ -62,13 +62,22 @@ admin session can see a connector-backed surface. A specialist the admin spawns
62
62
  separate, short-lived client with a fixed tool set that does not include your connectors, so it cannot
63
63
  see them at all.
64
64
 
65
- This matters most for your calendar. Your real calendar often lives on a connector (Google Calendar,
66
- Microsoft 365). The admin session sees it; a specialist does not. So the admin session is the one that
67
- answers what is on your calendar, judges whether you are free, and makes any booking that affects your
68
- availability, rather than handing that to a specialist that would answer from the built-in calendar
69
- alone and miss the connector. A specialist still helps with mechanical calendar chores the admin hands
70
- it with the facts already worked out, such as turning named events into a calendar file. The same rule
71
- holds for any other connector: the admin session is the seat that reasons over it.
65
+ This matters most for your calendar. When a session holds connector tools, your real calendar often
66
+ lives on a connector (Google Calendar, Microsoft 365). The admin session sees it; a specialist does
67
+ not. So the admin session is the one that answers what is on your calendar, judges whether you are free,
68
+ and makes any booking that affects your availability, rather than handing that to a specialist that
69
+ would answer from the built-in calendar alone and miss the connector. A specialist still helps with
70
+ mechanical calendar chores the admin hands it with the facts already worked out, such as turning named
71
+ events into a calendar file. The same rule holds for any other connector: the admin session is the seat
72
+ that reasons over it.
73
+
74
+ A session that holds no connector tools cannot use a connector at all, and a connector is per client, so
75
+ a client sub-account session can never hold one. Such a session must not recommend connecting a
76
+ claude.ai connector for the calendar. Its calendar capability is the internal scheduling calendar
77
+ (`schedule-event`, `schedule-list`, and the rest) for live create and manage, plus a one-time
78
+ `schedule-archive-ics` import that pulls an existing Google, Outlook, or Apple calendar into the graph
79
+ from an `.ics` export. Full live per-account Google Calendar integration is planned;
80
+ until it ships, the internal calendar plus `.ics` import is the calendar path for a no-connector seat.
72
81
 
73
82
  ## What this is not
74
83
 
@@ -63,15 +63,27 @@ Create events immediately when the user identifies something time-bound — an a
63
63
 
64
64
  ## Who owns calendar truth
65
65
 
66
- This store is one input to the operator's availability, not the whole of it. The operator's real
67
- calendar can live on a claude.ai connector (Google Calendar, Microsoft 365) that only the admin session
68
- can see; these tools cannot read it. So the internal store is authoritative for what the booking site
69
- publishes, but it is not, by itself, the answer to "what is on the calendar" or "am I free" when a
70
- connector calendar exists. The admin session is the seat that reconciles the two, because it is the only
71
- one that sees both. A specialist holds these scheduling tools for mechanical writes the admin delegates
72
- with the connector-derived facts already resolved, not for deciding calendar truth from this store
73
- alone. Automatic connector-to-internal availability sync is separate future work; until it exists, the
74
- admin session is the reconciling seat.
66
+ This store is one input to the operator's availability, not the whole of it. Whether a connector
67
+ calendar even applies depends on the seat you are in, which you read from the tools loaded in this
68
+ session: the admin/claude.ai seat has claude.ai connector tools; a client sub-account session, or any
69
+ other non-connector seat, has none.
70
+
71
+ When this session has connector tools loaded, the operator's real calendar can live on a claude.ai
72
+ connector (Google Calendar, Microsoft 365) that only that seat can see; these scheduling tools cannot
73
+ read it. So the internal store is authoritative for what the booking site publishes, but it is not, by
74
+ itself, the answer to "what is on the calendar" or "am I free" when a connector calendar exists. The
75
+ admin session is the seat that reconciles the two, because it is the only one that sees both. A
76
+ specialist holds these scheduling tools for mechanical writes the admin delegates with the
77
+ connector-derived facts already resolved, not for deciding calendar truth from this store alone.
78
+
79
+ When this session has no connector tools, do not suggest connecting a claude.ai connector; that seat
80
+ structurally cannot hold one, and a client sub-account never can. The calendar answer this seat owns is
81
+ these internal scheduling tools: `schedule-event`, `schedule-list`, and the rest for live create and
82
+ manage, plus a one-time `schedule-archive-ics` import that pulls an existing Google, Outlook, or Apple
83
+ calendar into the graph from an `.ics` export. Full live per-account Google Calendar integration is
84
+ is planned; until it ships, the internal calendar plus `.ics` import is the client path.
85
+
86
+ Automatic connector-to-internal availability sync is separate future work.
75
87
 
76
88
  ## Meetings vs events — what `schedule-event` writes
77
89
 
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
@@ -3043,6 +3043,11 @@ export function buildHttpApp(deps) {
3043
3043
  brandedNeo4jUri: process.env.NEO4J_URI ?? '',
3044
3044
  brandedNeo4jPassword: process.env.NEO4J_PASSWORD ?? '',
3045
3045
  sliceToken,
3046
+ // Task 1764 — stamp CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE for operator
3047
+ // surfaces so SendUserFile survives a bridgeless resume, but never for
3048
+ // role='public' spawns (the public session-end review), which Task 1724
3049
+ // scoped out. Mirrors pty-spawner's `role !== 'public'` exclusion.
3050
+ remoteControl: rcRole !== 'public',
3046
3051
  // Task 1466 — deliver the computed house-admin scope into the child env
3047
3052
  // (and thus its installed-plugin MCP children); null on non-house / public
3048
3053
  // / specialist spawns leaves the var unset.