muse-code-msp 1.4.7__tar.gz → 1.4.9__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: muse-code-msp
3
- Version: 1.4.7
3
+ Version: 1.4.9
4
4
  Summary: Generated Python wire types for the Muse Session Protocol (MSP). No hand-written protocol types, ever.
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/meta-models/muse-code-sdk
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
 
6
6
  [project]
7
7
  name = "muse-code-msp"
8
- version = "1.4.7"
8
+ version = "1.4.9"
9
9
  description = "Generated Python wire types for the Muse Session Protocol (MSP). No hand-written protocol types, ever."
10
10
  readme = "README.md"
11
11
  requires-python = ">=3.10"
@@ -7,10 +7,10 @@ from __future__ import annotations
7
7
 
8
8
  from typing import Any, Final, Literal, TypedDict
9
9
 
10
- SCHEMA_FINGERPRINT: Final[str] = "sha256:6de32db08bbbe0deb478d2bfcaba001e9fb490986bc80db3aceb4d996abf7df9"
10
+ SCHEMA_FINGERPRINT: Final[str] = "sha256:5d3b43e5ccdb7dc4f5a32c380f5f2cde0f10e3059b93610afb2e73f73b1d914c"
11
11
  SCHEMA_VERSION: Final[int] = 1
12
12
  EXPERIMENTAL: Final[bool] = False
13
- REQUIRED_HOST_VERSION: Final[str] = "1.4.7"
13
+ REQUIRED_HOST_VERSION: Final[str] = "1.4.9"
14
14
 
15
15
  ApprovalAmendmentDurability = str # open enum: unknown values stay representable
16
16
  APPROVAL_AMENDMENT_DURABILITY_KNOWN_VALUES: Final[tuple[str, ...]] = ("session", "localPersistent",)
@@ -51,7 +51,7 @@ BACKGROUND_INITIATOR_KNOWN_VALUES: Final[tuple[str, ...]] = ("user", "timeout",)
51
51
 
52
52
  # A grantable capability name. Open: the reserved `rawLog` entry joins this domain as an additive open-enum extension when the protocol spec un-defers — closed would make that a retype.
53
53
  CapabilityName = str # open enum: unknown values stay representable
54
- CAPABILITY_NAME_KNOWN_VALUES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup",)
54
+ CAPABILITY_NAME_KNOWN_VALUES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup", "sessionRename",)
55
55
 
56
56
  # The language a Code Mode cell ran in. Open: values are lowercase VS Code language identifiers, and only `javascript` (the V8 engine) is minted today.
57
57
  CodeModeLanguage = str # open enum: unknown values stay representable
@@ -80,6 +80,14 @@ COMPACTION_OUTCOME_KNOWN_VALUES: Final[tuple[str, ...]] = ("compacted", "noop",
80
80
  CompactionTrigger = str # open enum: unknown values stay representable
81
81
  COMPACTION_TRIGGER_KNOWN_VALUES: Final[tuple[str, ...]] = ("manual", "auto",)
82
82
 
83
+ # A per-app choice. **Open**, like `ComputerUseChoice`.
84
+ ComputerUseAppChoice = str # open enum: unknown values stay representable
85
+ COMPUTER_USE_APP_CHOICE_KNOWN_VALUES: Final[tuple[str, ...]] = ("ask", "alwaysAllow", "blocked",)
86
+
87
+ # Why Settings can't change a row. **Open**.
88
+ ComputerUseAppLock = str # open enum: unknown values stay representable
89
+ COMPUTER_USE_APP_LOCK_KNOWN_VALUES: Final[tuple[str, ...]] = ("builtIn", "file",)
90
+
83
91
  # A capability dropdown's value. **Open**: the read result carries it, so an older client tolerates a value it does not know.
84
92
  ComputerUseChoice = str # open enum: unknown values stay representable
85
93
  COMPUTER_USE_CHOICE_KNOWN_VALUES: Final[tuple[str, ...]] = ("ask", "alwaysAllow",)
@@ -135,7 +143,7 @@ IfBusy = Literal["queue", "steer", "replace"]
135
143
 
136
144
  # The eleven v1 item kinds plus post-v1 kinds. Open: a new kind is additive evolution, and clients MUST render unknown kinds generically.
137
145
  ItemKind = str # open enum: unknown values stay representable
138
- ITEM_KIND_KNOWN_VALUES: Final[tuple[str, ...]] = ("userMessage", "agentMessage", "reasoning", "toolCall", "userShell", "subagent", "workflow", "reminderChild", "compaction", "hookRun", "sideChat", "webSearch",)
146
+ ITEM_KIND_KNOWN_VALUES: Final[tuple[str, ...]] = ("userMessage", "agentMessage", "reasoning", "toolCall", "userShell", "subagent", "workflow", "reminderChild", "compaction", "hookRun", "sideChat", "webSearch", "monitorFeed",)
139
147
 
140
148
  # The `item/readOutput` content encoding. Closed: text media is ALWAYS `utf8` and binary media `base64`; a third value would change the client's decode contract.
141
149
  ItemReadOutputEncoding = Literal["utf8", "base64"]
@@ -151,6 +159,10 @@ JsonRpcVersion = Literal["2.0"]
151
159
  LimitKind = str # open enum: unknown values stay representable
152
160
  LIMIT_KIND_KNOWN_VALUES: Final[tuple[str, ...]] = ("tierLimit",)
153
161
 
162
+ # `agentMessage.messagePhase`: the phase the model declared on the commit, never inferred from position. Set on the completed item only; absent on `item/started`, which opens before the phase is recorded. Open: a client reads an absent or unknown value on a completed item as `"finalAnswer"` and still decodes the item. Not a turn-done signal; `turn/completed` is.
163
+ MessagePhase = str # open enum: unknown values stay representable
164
+ MESSAGE_PHASE_KNOWN_VALUES: Final[tuple[str, ...]] = ("commentary", "finalAnswer",)
165
+
154
166
  # Where a model catalog came from. **Open**: an unrecognized value is an unknown source, not an error.
155
167
  ModelCatalogSource = str # open enum: unknown values stay representable
156
168
  MODEL_CATALOG_SOURCE_KNOWN_VALUES: Final[tuple[str, ...]] = ("providerCatalog", "fakeCatalog", "unresolvedCatalog", "bundledCatalog", "configCatalog",)
@@ -595,6 +607,27 @@ class CommandAcceptedResult(TypedDict):
595
607
  status: CommandAckStatus
596
608
 
597
609
 
610
+ class _ComputerUseAppBase(TypedDict):
611
+ bundleId: str
612
+ choice: ComputerUseAppChoice
613
+
614
+
615
+ class ComputerUseApp(_ComputerUseAppBase, total=False):
616
+ """One row of the Settings apps list."""
617
+
618
+ lastAskedAt: str
619
+ locked: bool
620
+ lockedBy: ComputerUseAppLock
621
+ name: str
622
+
623
+
624
+ class ComputerUseAppPatch(TypedDict):
625
+ """One per-app choice to set in `computerUseSettings/update`."""
626
+
627
+ bundleId: str
628
+ choice: ComputerUseAppChoice
629
+
630
+
598
631
  class _ComputerUseBlockedAppBase(TypedDict):
599
632
  bundleId: str
600
633
  locked: bool
@@ -606,23 +639,37 @@ class ComputerUseBlockedApp(_ComputerUseBlockedAppBase, total=False):
606
639
  prefix: bool
607
640
 
608
641
 
609
- class ComputerUseSettings(TypedDict):
610
- """`computerUseSettings/read` result, also answered by `computerUseSettings/update`."""
642
+ class ComputerUseInstalledApp(TypedDict):
643
+ """One installed or running app, for Settings' app picker."""
611
644
 
645
+ bundleId: str
646
+ name: str
647
+
648
+
649
+ class _ComputerUseSettingsBase(TypedDict):
612
650
  blockedApps: list[ComputerUseBlockedApp]
613
651
  computerControl: ComputerUseChoice
614
652
  screenshots: ComputerUseChoice
615
653
 
616
654
 
655
+ class ComputerUseSettings(_ComputerUseSettingsBase, total=False):
656
+ """`computerUseSettings/read` result, also answered by `computerUseSettings/update`."""
657
+
658
+ apps: list[ComputerUseApp]
659
+ installedApps: list[ComputerUseInstalledApp]
660
+
661
+
617
662
  class ComputerUseSettingsReadParams(TypedDict, total=False):
618
663
  """`computerUseSettings/read` params."""
619
664
 
665
+ installed: bool
620
666
  showBuiltIns: bool
621
667
 
622
668
 
623
669
  class ComputerUseSettingsUpdateParams(TypedDict, total=False):
624
670
  """`computerUseSettings/update` params: a patch. Omitted members are left alone; the whole patch applies or none of it does."""
625
671
 
672
+ apps: list[ComputerUseAppPatch]
626
673
  blockApps: list[str]
627
674
  computerControl: ComputerUseChoice
628
675
  screenshots: ComputerUseChoice
@@ -977,6 +1024,7 @@ class Item(_ItemBase, total=False):
977
1024
  cutOff: bool
978
1025
  declaredPhase: str
979
1026
  depth: int
1027
+ displayLabel: ToolDisplayLabel
980
1028
  displayText: str
981
1029
  durationMs: int
982
1030
  entryId: str
@@ -991,7 +1039,10 @@ class Item(_ItemBase, total=False):
991
1039
  hookKey: str
992
1040
  label: str
993
1041
  message: str
1042
+ messagePhase: MessagePhase
994
1043
  modelVisibleContent: list[ModelVisibleContent]
1044
+ monitorDescription: str
1045
+ monitorId: str
995
1046
  objective: str
996
1047
  outcome: CompactionOutcome
997
1048
  outputRef: OutputRef
@@ -1568,6 +1619,7 @@ class Session(_SessionBase, total=False):
1568
1619
  branch: str
1569
1620
  createdByClient: ClientInfo
1570
1621
  firstUserPrompt: str
1622
+ generatedName: str
1571
1623
  kind: SessionKind
1572
1624
  lastActivityAt: str
1573
1625
  name: str
@@ -1786,6 +1838,7 @@ class _SessionNameChangedParamsBase(TypedDict):
1786
1838
  class SessionNameChangedParams(_SessionNameChangedParamsBase, total=False):
1787
1839
  """`session/nameChanged` params: the fold of ANY durable session-name record — the FIRST-NAMING automatic allocate as well as an accepted `session/rename` (or the same in-process runtime command). Replace-wholesale like every sibling."""
1788
1840
 
1841
+ generatedName: str
1789
1842
  nameOrigin: SessionNameOrigin
1790
1843
 
1791
1844
 
@@ -1853,6 +1906,7 @@ class SessionResumeParams(_SessionResumeParamsBase, total=False):
1853
1906
  cursor: str | None
1854
1907
  excludeItems: bool
1855
1908
  history: HistoryPreference
1909
+ permissionProfile: str
1856
1910
 
1857
1911
 
1858
1912
  class _SessionResumeResultBase(TypedDict):
@@ -2049,6 +2103,7 @@ class SkillCatalogEntry(_SkillCatalogEntryBase, total=False):
2049
2103
 
2050
2104
  argumentHint: str
2051
2105
  pluginId: str
2106
+ title: str
2052
2107
 
2053
2108
 
2054
2109
  class SkillChangedParams(TypedDict):
@@ -2418,6 +2473,14 @@ class TokenUsage(_TokenUsageBase, total=False):
2418
2473
  cacheWriteTokens: int
2419
2474
 
2420
2475
 
2476
+ class ToolDisplayLabel(TypedDict):
2477
+ """`toolCall.displayLabel`: the call's words in three forms, each one line of plain text, always present together. The item's `status` picks the form."""
2478
+
2479
+ active: str
2480
+ done: str
2481
+ neutral: str
2482
+
2483
+
2421
2484
  class TraceContext(TypedDict, total=False):
2422
2485
  """Optional W3C trace context, on requests in both directions only — never on responses or notifications."""
2423
2486
 
@@ -2521,6 +2584,25 @@ class TurnInterruptResult(TypedDict):
2521
2584
  turnId: str
2522
2585
 
2523
2586
 
2587
+ class _TurnModelRetryScheduledParamsBase(TypedDict):
2588
+ attempt: int
2589
+ maxAttempts: int
2590
+ nextAttempt: int
2591
+ retryDelayMs: int
2592
+ sessionId: str
2593
+ sourceRange: SourceRange
2594
+ turnId: str
2595
+ viewCursor: str
2596
+
2597
+
2598
+ class TurnModelRetryScheduledParams(_TurnModelRetryScheduledParamsBase, total=False):
2599
+ """`turn/modelRetryScheduled` params: a durable model-stream retry-scheduled fact folded — the provider backoff behind one model attempt is observable BEFORE the turn terminates, so a streaming client can render \"system words · retrying in Ss · attempt N/M\" instead of dead air. Non-terminal: it never resolves a turn-wait. The sibling `turn/retryScheduled` shape at the model layer: same member names and semantics (attempt/nextAttempt/maxAttempts/ retryDelayMs/system/errorKind/httpStatus), minus `reason` — the row's words derive from `errorKind` through the shared gate-off mapping, and the recorded machine message is not user text. The delay is the recorded scheduled backoff, never an absolute fire time — clients derive any countdown locally. `sourceRange` cites the session stream's mirror of the task-lifecycle record."""
2600
+
2601
+ errorKind: str
2602
+ httpStatus: int
2603
+ system: str
2604
+
2605
+
2524
2606
  class _TurnRefBase(TypedDict):
2525
2607
  commandId: str
2526
2608
  turnId: str
@@ -3148,6 +3230,7 @@ METHODS: Final[dict[str, MethodSpec]] = {
3148
3230
  NOTIFICATIONS: Final[dict[str, NotificationSpec]] = {
3149
3231
  "approval/requested": {"description": "An approval opened: the fold of its durable Requested record.", "params": "ApprovalRequestParams"},
3150
3232
  "approval/resolved": {"description": "The first durable approval terminal landed; protected delivery.", "params": "ApprovalResolvedParams"},
3233
+ "approval/reviewing": {"description": "The native reviewer holds an approval: the fold of a Requested whose phase is automated_reviewing; typed activity, not a request.", "params": "ApprovalRequestParams"},
3151
3234
  "approval/updated": {"description": "A non-terminal approval record changed the pending view.", "params": "ApprovalUpdatedParams"},
3152
3235
  "computerUseSetup/changed": {"description": "A computerUseSetup/read or /start observed a session's setup state differ from the last one sent for it, including inProgress when a start begins and the state it settles in. Without sessionId it carries the host's own setup state, delivered only with computerUseHostSetup.", "params": "ComputerUseSetupChanged"},
3153
3236
  "initialized": {"description": "Client-to-server notification closing the handshake; no params.", "params": None},
@@ -3176,6 +3259,7 @@ NOTIFICATIONS: Final[dict[str, NotificationSpec]] = {
3176
3259
  "skill/changed": {"description": "The session's user-invocable skill set changed; clients re-issue skill/list. A live host-state projection, not a view event.", "params": "SkillChangedParams"},
3177
3260
  "turn/completed": {"description": "Turn terminal: completed | failed | cancelled, with usage and the settled error object.", "params": "TurnCompletedParams"},
3178
3261
  "turn/foregroundCompleted": {"description": "The turn's foreground work is done while named background reminder checks hold the turn open; explicitly non-terminal.", "params": "TurnForegroundCompletedParams"},
3262
+ "turn/modelRetryScheduled": {"description": "A provider backoff behind one model attempt is scheduled and waiting out its delay; observable mid-turn, non-terminal.", "params": "TurnModelRetryScheduledParams"},
3179
3263
  "turn/retracted": {"description": "An accepted interrupt's paired retract durably settled, accepted or declined.", "params": "TurnRetractedParams"},
3180
3264
  "turn/retryScheduled": {"description": "A failing model attempt's retry is scheduled and waiting out its backoff; observable mid-turn, non-terminal.", "params": "TurnRetryScheduledParams"},
3181
3265
  "turn/started": {"description": "A foreground turn began running.", "params": "TurnStartedParams"},
@@ -3227,4 +3311,4 @@ ERRORS: Final[tuple[ErrorSpec, ...]] = (
3227
3311
  {"code": -32057, "kind": "userInputAnswerInvalid", "retryable": False, "overrideKinds": ()},
3228
3312
  )
3229
3313
 
3230
- GRANTABLE_CAPABILITIES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup",)
3314
+ GRANTABLE_CAPABILITIES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup", "sessionRename",)
@@ -7,10 +7,10 @@ from __future__ import annotations
7
7
 
8
8
  from typing import Any, Final, Literal, TypedDict
9
9
 
10
- SCHEMA_FINGERPRINT: Final[str] = "sha256:0d803007acbd02ad07a6cec4d5a63b834f4db743886bbaf865b8738116dc212f"
10
+ SCHEMA_FINGERPRINT: Final[str] = "sha256:e8b3d24f3922af8e567838a9ebdf8a28b64e6e0ddb516689f1a760e46c2f7fa1"
11
11
  SCHEMA_VERSION: Final[int] = 1
12
12
  EXPERIMENTAL: Final[bool] = True
13
- REQUIRED_HOST_VERSION: Final[str] = "1.4.7"
13
+ REQUIRED_HOST_VERSION: Final[str] = "1.4.9"
14
14
 
15
15
  # How a login flow ended. Server-produced, so the vocabulary is open per the E2 rule — a future flow may end in a new way additively.
16
16
  AccountLoginOutcome = str # open enum: unknown values stay representable
@@ -70,7 +70,7 @@ BACKGROUND_STATE_KNOWN_VALUES: Final[tuple[str, ...]] = ("backgrounded",)
70
70
 
71
71
  # A grantable capability name. Open: the reserved `rawLog` entry joins this domain as an additive open-enum extension when the protocol spec un-defers — closed would make that a retype.
72
72
  CapabilityName = str # open enum: unknown values stay representable
73
- CAPABILITY_NAME_KNOWN_VALUES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup", "peerMessaging", "rawLog",)
73
+ CAPABILITY_NAME_KNOWN_VALUES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup", "sessionRename", "peerMessaging", "rawLog",)
74
74
 
75
75
  # The language a Code Mode cell ran in. Open: values are lowercase VS Code language identifiers, and only `javascript` (the V8 engine) is minted today.
76
76
  CodeModeLanguage = str # open enum: unknown values stay representable
@@ -99,6 +99,14 @@ COMPACTION_OUTCOME_KNOWN_VALUES: Final[tuple[str, ...]] = ("compacted", "noop",
99
99
  CompactionTrigger = str # open enum: unknown values stay representable
100
100
  COMPACTION_TRIGGER_KNOWN_VALUES: Final[tuple[str, ...]] = ("manual", "auto",)
101
101
 
102
+ # A per-app choice. **Open**, like `ComputerUseChoice`.
103
+ ComputerUseAppChoice = str # open enum: unknown values stay representable
104
+ COMPUTER_USE_APP_CHOICE_KNOWN_VALUES: Final[tuple[str, ...]] = ("ask", "alwaysAllow", "blocked",)
105
+
106
+ # Why Settings can't change a row. **Open**.
107
+ ComputerUseAppLock = str # open enum: unknown values stay representable
108
+ COMPUTER_USE_APP_LOCK_KNOWN_VALUES: Final[tuple[str, ...]] = ("builtIn", "file",)
109
+
102
110
  # A capability dropdown's value. **Open**: the read result carries it, so an older client tolerates a value it does not know.
103
111
  ComputerUseChoice = str # open enum: unknown values stay representable
104
112
  COMPUTER_USE_CHOICE_KNOWN_VALUES: Final[tuple[str, ...]] = ("ask", "alwaysAllow",)
@@ -154,7 +162,7 @@ IfBusy = Literal["queue", "steer", "replace"]
154
162
 
155
163
  # The eleven v1 item kinds plus post-v1 kinds. Open: a new kind is additive evolution, and clients MUST render unknown kinds generically.
156
164
  ItemKind = str # open enum: unknown values stay representable
157
- ITEM_KIND_KNOWN_VALUES: Final[tuple[str, ...]] = ("userMessage", "agentMessage", "reasoning", "toolCall", "userShell", "subagent", "workflow", "reminderChild", "compaction", "hookRun", "sideChat", "webSearch", "skillRead",)
165
+ ITEM_KIND_KNOWN_VALUES: Final[tuple[str, ...]] = ("userMessage", "agentMessage", "reasoning", "toolCall", "userShell", "subagent", "workflow", "reminderChild", "compaction", "hookRun", "sideChat", "webSearch", "monitorFeed", "skillRead",)
158
166
 
159
167
  # The `item/readOutput` content encoding. Closed: text media is ALWAYS `utf8` and binary media `base64`; a third value would change the client's decode contract.
160
168
  ItemReadOutputEncoding = Literal["utf8", "base64"]
@@ -170,6 +178,10 @@ JsonRpcVersion = Literal["2.0"]
170
178
  LimitKind = str # open enum: unknown values stay representable
171
179
  LIMIT_KIND_KNOWN_VALUES: Final[tuple[str, ...]] = ("tierLimit",)
172
180
 
181
+ # `log/gap` `reason`: only a `replayAnchorLost` gap is refillable through `log/page`; an `overFrame` gap is a known hole on that connection, its hole `(after, next]` less `next` when it is delivered. **Open**: a server-produced vocabulary.
182
+ LogGapReason = str # open enum: unknown values stay representable
183
+ LOG_GAP_REASON_KNOWN_VALUES: Final[tuple[str, ...]] = ("replayAnchorLost", "overFrame",)
184
+
173
185
  # The login flow's terminal vocabulary. Open.
174
186
  McpOAuthLoginOutcome = str # open enum: unknown values stay representable
175
187
  MCP_O_AUTH_LOGIN_OUTCOME_KNOWN_VALUES: Final[tuple[str, ...]] = ("granted", "denied", "expired", "cancelled", "failed",)
@@ -190,6 +202,10 @@ MCP_SERVER_LIST_SOURCE_KNOWN_VALUES: Final[tuple[str, ...]] = ("settings", "plug
190
202
  McpServerListTransport = str # open enum: unknown values stay representable
191
203
  MCP_SERVER_LIST_TRANSPORT_KNOWN_VALUES: Final[tuple[str, ...]] = ("stdio", "streamableHttp", "unknown",)
192
204
 
205
+ # `agentMessage.messagePhase`: the phase the model declared on the commit, never inferred from position. Set on the completed item only; absent on `item/started`, which opens before the phase is recorded. Open: a client reads an absent or unknown value on a completed item as `"finalAnswer"` and still decodes the item. Not a turn-done signal; `turn/completed` is.
206
+ MessagePhase = str # open enum: unknown values stay representable
207
+ MESSAGE_PHASE_KNOWN_VALUES: Final[tuple[str, ...]] = ("commentary", "finalAnswer",)
208
+
193
209
  # Where a model catalog came from. **Open**: an unrecognized value is an unknown source, not an error.
194
210
  ModelCatalogSource = str # open enum: unknown values stay representable
195
211
  MODEL_CATALOG_SOURCE_KNOWN_VALUES: Final[tuple[str, ...]] = ("providerCatalog", "fakeCatalog", "unresolvedCatalog", "bundledCatalog", "configCatalog",)
@@ -210,6 +226,18 @@ PEER_STATUS_KNOWN_VALUES: Final[tuple[str, ...]] = ("idle", "active", "busy", "c
210
226
  PendingRequestKind = str # open enum: unknown values stay representable
211
227
  PENDING_REQUEST_KIND_KNOWN_VALUES: Final[tuple[str, ...]] = ("approval", "userInput",)
212
228
 
229
+ # A profile's effective approval axis. **Open**: the vocabulary can widen.
230
+ PermissionApprovalAxis = str # open enum: unknown values stay representable
231
+ PERMISSION_APPROVAL_AXIS_KNOWN_VALUES: Final[tuple[str, ...]] = ("onRequest", "promptUnmatched", "allowAll",)
232
+
233
+ # A profile's effective filesystem axis. **Open**: the vocabulary can widen.
234
+ PermissionFilesystemAxis = str # open enum: unknown values stay representable
235
+ PERMISSION_FILESYSTEM_AXIS_KNOWN_VALUES: Final[tuple[str, ...]] = ("sandboxed", "unrestricted",)
236
+
237
+ # A profile's effective local-command network axis. **Open**: the vocabulary can widen.
238
+ PermissionNetworkAxis = str # open enum: unknown values stay representable
239
+ PERMISSION_NETWORK_AXIS_KNOWN_VALUES: Final[tuple[str, ...]] = ("restricted", "off", "enabled",)
240
+
213
241
  # Whether a profile change did anything. The accepted arm spells `completed` exactly as `session/setApprovalMode` so the shared member never forks spellings. Apply failures are `commandRejected`.
214
242
  PermissionProfileApplyOutcome = str # open enum: unknown values stay representable
215
243
  PERMISSION_PROFILE_APPLY_OUTCOME_KNOWN_VALUES: Final[tuple[str, ...]] = ("completed", "noop",)
@@ -297,6 +325,12 @@ SessionMcpStdioFraming = Literal["auto", "contentLength", "lineDelimitedJson"]
297
325
  SessionNameOrigin = str # open enum: unknown values stay representable
298
326
  SESSION_NAME_ORIGIN_KNOWN_VALUES: Final[tuple[str, ...]] = ("automatic", "custom",)
299
327
 
328
+ # `session/reportStartupPhases` span phase: the `StartupPhasesRecord` phase vocabulary in camelCase. The host maps each value onto the record's snake_case spelling at append. Experimental: the stable bundle strips this until the surface stabilizes (in-v1 row 348).
329
+ SessionReportStartupPhase = Literal["terminalProbe", "sessionOpen", "runtimeInit", "firstFrame", "inputReady"]
330
+
331
+ # `session/reportStartupPhases` terminal color provenance: the durable `TerminalColorProvenance` vocabulary in camelCase. The host maps each value onto the record spelling at append. Experimental: the stable bundle strips this until the surface stabilizes (in-v1 row 348).
332
+ SessionReportTerminalColorProvenance = Literal["probed", "defaulted", "overridden"]
333
+
300
334
  # A session's load state.
301
335
  SessionStatus = str # open enum: unknown values stay representable
302
336
  SESSION_STATUS_KNOWN_VALUES: Final[tuple[str, ...]] = ("notLoaded", "idle", "running",)
@@ -810,6 +844,27 @@ class CommandAcceptedResult(TypedDict):
810
844
  status: CommandAckStatus
811
845
 
812
846
 
847
+ class _ComputerUseAppBase(TypedDict):
848
+ bundleId: str
849
+ choice: ComputerUseAppChoice
850
+
851
+
852
+ class ComputerUseApp(_ComputerUseAppBase, total=False):
853
+ """One row of the Settings apps list."""
854
+
855
+ lastAskedAt: str
856
+ locked: bool
857
+ lockedBy: ComputerUseAppLock
858
+ name: str
859
+
860
+
861
+ class ComputerUseAppPatch(TypedDict):
862
+ """One per-app choice to set in `computerUseSettings/update`."""
863
+
864
+ bundleId: str
865
+ choice: ComputerUseAppChoice
866
+
867
+
813
868
  class _ComputerUseBlockedAppBase(TypedDict):
814
869
  bundleId: str
815
870
  locked: bool
@@ -821,23 +876,37 @@ class ComputerUseBlockedApp(_ComputerUseBlockedAppBase, total=False):
821
876
  prefix: bool
822
877
 
823
878
 
824
- class ComputerUseSettings(TypedDict):
825
- """`computerUseSettings/read` result, also answered by `computerUseSettings/update`."""
879
+ class ComputerUseInstalledApp(TypedDict):
880
+ """One installed or running app, for Settings' app picker."""
881
+
882
+ bundleId: str
883
+ name: str
826
884
 
885
+
886
+ class _ComputerUseSettingsBase(TypedDict):
827
887
  blockedApps: list[ComputerUseBlockedApp]
828
888
  computerControl: ComputerUseChoice
829
889
  screenshots: ComputerUseChoice
830
890
 
831
891
 
892
+ class ComputerUseSettings(_ComputerUseSettingsBase, total=False):
893
+ """`computerUseSettings/read` result, also answered by `computerUseSettings/update`."""
894
+
895
+ apps: list[ComputerUseApp]
896
+ installedApps: list[ComputerUseInstalledApp]
897
+
898
+
832
899
  class ComputerUseSettingsReadParams(TypedDict, total=False):
833
900
  """`computerUseSettings/read` params."""
834
901
 
902
+ installed: bool
835
903
  showBuiltIns: bool
836
904
 
837
905
 
838
906
  class ComputerUseSettingsUpdateParams(TypedDict, total=False):
839
907
  """`computerUseSettings/update` params: a patch. Omitted members are left alone; the whole patch applies or none of it does."""
840
908
 
909
+ apps: list[ComputerUseAppPatch]
841
910
  blockApps: list[str]
842
911
  computerControl: ComputerUseChoice
843
912
  screenshots: ComputerUseChoice
@@ -947,14 +1016,18 @@ class EffectiveModel(TypedDict):
947
1016
  source: ModelChangeSource
948
1017
 
949
1018
 
950
- class EffectivePermissionState(TypedDict):
951
- """The effective permission-state projection: the committed native permission snapshot (profile identity, reviewer authority) plus the live per-session runtime's attachment evidence. The same object `session/setPermissionProfile` returns and the `Session` object carries as `permissionState`. Served values must be coherent: a read never combines an old profile with a newer runtime's attachment claim."""
952
-
1019
+ class _EffectivePermissionStateBase(TypedDict):
953
1020
  profileId: str | None
954
1021
  reviewerAttached: bool
955
1022
  reviewerAuthority: ReviewerAuthority
956
1023
 
957
1024
 
1025
+ class EffectivePermissionState(_EffectivePermissionStateBase, total=False):
1026
+ """The effective permission-state projection: the committed native permission snapshot (profile identity, reviewer authority) plus the live per-session runtime's attachment evidence. The same object `session/setPermissionProfile` returns and the `Session` object carries as `permissionState`. Served values must be coherent: a read never combines an old profile with a newer runtime's attachment claim."""
1027
+
1028
+ axes: PermissionAxes
1029
+
1030
+
958
1031
  class _ErrorDataBase(TypedDict):
959
1032
  kind: ErrorKind
960
1033
 
@@ -1213,6 +1286,7 @@ class Item(_ItemBase, total=False):
1213
1286
  cutOff: bool
1214
1287
  declaredPhase: str
1215
1288
  depth: int
1289
+ displayLabel: ToolDisplayLabel
1216
1290
  displayText: str
1217
1291
  durationMs: int
1218
1292
  entryId: str
@@ -1227,7 +1301,10 @@ class Item(_ItemBase, total=False):
1227
1301
  hookKey: str
1228
1302
  label: str
1229
1303
  message: str
1304
+ messagePhase: MessagePhase
1230
1305
  modelVisibleContent: list[ModelVisibleContent]
1306
+ monitorDescription: str
1307
+ monitorId: str
1231
1308
  objective: str
1232
1309
  outcome: CompactionOutcome
1233
1310
  outputRef: OutputRef
@@ -1361,15 +1438,19 @@ class LastTurn(_LastTurnBase, total=False):
1361
1438
  reason: str
1362
1439
 
1363
1440
 
1364
- class LogGapParams(TypedDict):
1365
- """`log/gap` notification params: the raw-altitude shape of the shared gap contract, per subscription. The client MUST fill `(after, next)` with `log/page` before treating its fold as current."""
1366
-
1441
+ class _LogGapParamsBase(TypedDict):
1367
1442
  after: RecordPosition
1368
1443
  next: RecordPosition
1369
1444
  stream: StreamRef
1370
1445
  subscriptionId: int
1371
1446
 
1372
1447
 
1448
+ class LogGapParams(_LogGapParamsBase, total=False):
1449
+ """`log/gap` notification params: the raw-altitude shape of the shared gap contract, per subscription. The client MUST fill `(after, next)` with `log/page` before treating its fold as current, except for an `overFrame` gap (see [`LogGapReason`])."""
1450
+
1451
+ reason: LogGapReason
1452
+
1453
+
1373
1454
  # `log/page` params.
1374
1455
  LogPageParams = TypedDict("LogPageParams", {
1375
1456
  "limit": "int",
@@ -1721,6 +1802,15 @@ class PendingUserInputPointer(_PendingUserInputPointerBase, total=False):
1721
1802
  itemId: str
1722
1803
 
1723
1804
 
1805
+ class PermissionAxes(TypedDict):
1806
+ """A committed profile's effective four axis values: the resolved filesystem, network, approval, and reviewer the YOLO predicate reads. The reviewer member reuses `ReviewerAuthority`, so its spelling never drifts from the served `reviewerAuthority`."""
1807
+
1808
+ approval: PermissionApprovalAxis
1809
+ filesystem: PermissionFilesystemAxis
1810
+ network: PermissionNetworkAxis
1811
+ reviewer: ReviewerAuthority
1812
+
1813
+
1724
1814
  class PermissionProfileListParams(TypedDict, total=False):
1725
1815
  """`permissionProfile/list` params: read the native profile catalog. A read-only method — takes no lease, grants nothing."""
1726
1816
 
@@ -2078,6 +2168,7 @@ class Session(_SessionBase, total=False):
2078
2168
  branch: str
2079
2169
  createdByClient: ClientInfo
2080
2170
  firstUserPrompt: str
2171
+ generatedName: str
2081
2172
  kind: SessionKind
2082
2173
  lastActivityAt: str
2083
2174
  name: str
@@ -2298,6 +2389,7 @@ class _SessionNameChangedParamsBase(TypedDict):
2298
2389
  class SessionNameChangedParams(_SessionNameChangedParamsBase, total=False):
2299
2390
  """`session/nameChanged` params: the fold of ANY durable session-name record — the FIRST-NAMING automatic allocate as well as an accepted `session/rename` (or the same in-process runtime command). Replace-wholesale like every sibling."""
2300
2391
 
2392
+ generatedName: str
2301
2393
  nameOrigin: SessionNameOrigin
2302
2394
 
2303
2395
 
@@ -2385,6 +2477,32 @@ class SessionRenameResult(_SessionRenameResultBase, total=False):
2385
2477
  name: str
2386
2478
 
2387
2479
 
2480
+ class _SessionReportStartupPhaseSpanBase(TypedDict):
2481
+ durationMs: int
2482
+ phase: SessionReportStartupPhase
2483
+ startMs: int
2484
+
2485
+
2486
+ class SessionReportStartupPhaseSpan(_SessionReportStartupPhaseSpanBase, total=False):
2487
+ """`session/reportStartupPhases` span: one `StartupPhasesRecord` phase row in camelCase. The host ignores unknown members and fails closed (`invalidParams`) on an unknown phase or provenance value; a `colorProvenance` on any other phase is stripped. The host maps each row onto the record's snake_case spelling at append. Experimental: the stable bundle strips this until the surface stabilizes (in-v1 row 348)."""
2488
+
2489
+ colorProvenance: SessionReportTerminalColorProvenance
2490
+
2491
+
2492
+ class SessionReportStartupPhasesParams(TypedDict):
2493
+ """`session/reportStartupPhases` params: the served session, the client-minted launch nonce (one UUID per process launch, any textual UUID form), and the finished spans. No `commandId`: the nonce is the idempotency key and the call is best-effort. Experimental: the stable bundle strips this until the surface stabilizes (in-v1 row 348)."""
2494
+
2495
+ launchNonce: str
2496
+ phases: list[SessionReportStartupPhaseSpan]
2497
+ sessionId: str
2498
+
2499
+
2500
+ class SessionReportStartupPhasesResult(TypedDict):
2501
+ """`session/reportStartupPhases` result: whether this report appended. A duplicate nonce succeeds with `recorded: false` and appends nothing. Experimental: the stable bundle strips this until the surface stabilizes (in-v1 row 348)."""
2502
+
2503
+ recorded: bool
2504
+
2505
+
2388
2506
  class _SessionResumeParamsBase(TypedDict):
2389
2507
  commandId: str
2390
2508
  sessionId: str
@@ -2397,6 +2515,7 @@ class SessionResumeParams(_SessionResumeParamsBase, total=False):
2397
2515
  cursor: str | None
2398
2516
  excludeItems: bool
2399
2517
  history: HistoryPreference
2518
+ permissionProfile: str
2400
2519
 
2401
2520
 
2402
2521
  class _SessionResumeResultBase(TypedDict):
@@ -2673,6 +2792,7 @@ class SkillCatalogEntry(_SkillCatalogEntryBase, total=False):
2673
2792
 
2674
2793
  argumentHint: str
2675
2794
  pluginId: str
2795
+ title: str
2676
2796
 
2677
2797
 
2678
2798
  class SkillChangedParams(TypedDict):
@@ -3042,6 +3162,14 @@ class TokenUsage(_TokenUsageBase, total=False):
3042
3162
  cacheWriteTokens: int
3043
3163
 
3044
3164
 
3165
+ class ToolDisplayLabel(TypedDict):
3166
+ """`toolCall.displayLabel`: the call's words in three forms, each one line of plain text, always present together. The item's `status` picks the form."""
3167
+
3168
+ active: str
3169
+ done: str
3170
+ neutral: str
3171
+
3172
+
3045
3173
  class TraceContext(TypedDict, total=False):
3046
3174
  """Optional W3C trace context, on requests in both directions only — never on responses or notifications."""
3047
3175
 
@@ -3145,6 +3273,25 @@ class TurnInterruptResult(TypedDict):
3145
3273
  turnId: str
3146
3274
 
3147
3275
 
3276
+ class _TurnModelRetryScheduledParamsBase(TypedDict):
3277
+ attempt: int
3278
+ maxAttempts: int
3279
+ nextAttempt: int
3280
+ retryDelayMs: int
3281
+ sessionId: str
3282
+ sourceRange: SourceRange
3283
+ turnId: str
3284
+ viewCursor: str
3285
+
3286
+
3287
+ class TurnModelRetryScheduledParams(_TurnModelRetryScheduledParamsBase, total=False):
3288
+ """`turn/modelRetryScheduled` params: a durable model-stream retry-scheduled fact folded — the provider backoff behind one model attempt is observable BEFORE the turn terminates, so a streaming client can render \"system words · retrying in Ss · attempt N/M\" instead of dead air. Non-terminal: it never resolves a turn-wait. The sibling `turn/retryScheduled` shape at the model layer: same member names and semantics (attempt/nextAttempt/maxAttempts/ retryDelayMs/system/errorKind/httpStatus), minus `reason` — the row's words derive from `errorKind` through the shared gate-off mapping, and the recorded machine message is not user text. The delay is the recorded scheduled backoff, never an absolute fire time — clients derive any countdown locally. `sourceRange` cites the session stream's mirror of the task-lifecycle record."""
3289
+
3290
+ errorKind: str
3291
+ httpStatus: int
3292
+ system: str
3293
+
3294
+
3148
3295
  class _TurnRefBase(TypedDict):
3149
3296
  commandId: str
3150
3297
  turnId: str
@@ -3796,6 +3943,7 @@ METHODS: Final[dict[str, MethodSpec]] = {
3796
3943
  "session/promptHint": {"description": "Picks one feature-tip table id over the client-supplied candidates; display-only, nothing is logged.", "params": "SessionPromptHintParams", "result": "SessionPromptHintResult"},
3797
3944
  "session/read": {"description": "Reads one stored session without attaching: no lease, no load, no subscription, no resume record.", "params": "SessionReadParams", "result": "SessionReadResult"},
3798
3945
  "session/rename": {"description": "Sets or changes the durable allocated session name through the runtime session_name command; withheld under the ephemeral profile.", "params": "SessionRenameParams", "result": "SessionRenameResult"},
3946
+ "session/reportStartupPhases": {"description": "Reports the client's measured startup spans once per launch; the host appends the durable phases record as single writer.", "params": "SessionReportStartupPhasesParams", "result": "SessionReportStartupPhasesResult"},
3799
3947
  "session/resume": {"description": "Loads a stored session on this host, auto-subscribes this connection, and returns the history needed to render it.", "params": "SessionResumeParams", "result": "SessionResumeResult"},
3800
3948
  "session/setApprovalMode": {"description": "Selects a preconfigured approval enforcement mode mid-session; select, never create.", "params": "SessionSetApprovalModeParams", "result": "SessionSetApprovalModeResult"},
3801
3949
  "session/setModel": {"description": "Reconfigures the session's model; the selection is durable and applies to subsequent model calls.", "params": "SessionSetModelParams", "result": "SessionSetModelResult"},
@@ -3850,6 +3998,7 @@ NOTIFICATIONS: Final[dict[str, NotificationSpec]] = {
3850
3998
  "admission/resolved": {"description": "A peer admission settled.", "params": "AdmissionResolvedViewParams"},
3851
3999
  "approval/requested": {"description": "An approval opened: the fold of its durable Requested record.", "params": "ApprovalRequestParams"},
3852
4000
  "approval/resolved": {"description": "The first durable approval terminal landed; protected delivery.", "params": "ApprovalResolvedParams"},
4001
+ "approval/reviewing": {"description": "The native reviewer holds an approval: the fold of a Requested whose phase is automated_reviewing; typed activity, not a request.", "params": "ApprovalRequestParams"},
3853
4002
  "approval/updated": {"description": "A non-terminal approval record changed the pending view.", "params": "ApprovalUpdatedParams"},
3854
4003
  "computerUseSetup/changed": {"description": "A computerUseSetup/read or /start observed a session's setup state differ from the last one sent for it, including inProgress when a start begins and the state it settles in. Without sessionId it carries the host's own setup state, delivered only with computerUseHostSetup.", "params": "ComputerUseSetupChanged"},
3855
4004
  "initialized": {"description": "Client-to-server notification closing the handshake; no params.", "params": None},
@@ -3882,6 +4031,7 @@ NOTIFICATIONS: Final[dict[str, NotificationSpec]] = {
3882
4031
  "skill/changed": {"description": "The session's user-invocable skill set changed; clients re-issue skill/list. A live host-state projection, not a view event.", "params": "SkillChangedParams"},
3883
4032
  "turn/completed": {"description": "Turn terminal: completed | failed | cancelled, with usage and the settled error object.", "params": "TurnCompletedParams"},
3884
4033
  "turn/foregroundCompleted": {"description": "The turn's foreground work is done while named background reminder checks hold the turn open; explicitly non-terminal.", "params": "TurnForegroundCompletedParams"},
4034
+ "turn/modelRetryScheduled": {"description": "A provider backoff behind one model attempt is scheduled and waiting out its delay; observable mid-turn, non-terminal.", "params": "TurnModelRetryScheduledParams"},
3885
4035
  "turn/retracted": {"description": "An accepted interrupt's paired retract durably settled, accepted or declined.", "params": "TurnRetractedParams"},
3886
4036
  "turn/retryScheduled": {"description": "A failing model attempt's retry is scheduled and waiting out its backoff; observable mid-turn, non-terminal.", "params": "TurnRetryScheduledParams"},
3887
4037
  "turn/started": {"description": "A foreground turn began running.", "params": "TurnStartedParams"},
@@ -3942,4 +4092,4 @@ ERRORS: Final[tuple[ErrorSpec, ...]] = (
3942
4092
  {"code": -32072, "kind": "admissionChoiceInvalid", "retryable": False, "overrideKinds": ()},
3943
4093
  )
3944
4094
 
3945
- GRANTABLE_CAPABILITIES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup", "rawLog", "peerMessaging",)
4095
+ GRANTABLE_CAPABILITIES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup", "sessionRename", "rawLog", "peerMessaging",)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: muse-code-msp
3
- Version: 1.4.7
3
+ Version: 1.4.9
4
4
  Summary: Generated Python wire types for the Muse Session Protocol (MSP). No hand-written protocol types, ever.
5
5
  License-Expression: MIT
6
6
  Project-URL: Homepage, https://github.com/meta-models/muse-code-sdk
File without changes
File without changes
File without changes