muse-code-msp 1.4.7__tar.gz → 1.4.8__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.
- {muse_code_msp-1.4.7/src/muse_code_msp.egg-info → muse_code_msp-1.4.8}/PKG-INFO +1 -1
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/pyproject.toml +1 -1
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/src/muse_code_msp/__init__.py +81 -7
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/src/muse_code_msp/experimental/__init__.py +153 -13
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8/src/muse_code_msp.egg-info}/PKG-INFO +1 -1
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/LICENSE +0 -0
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/README.md +0 -0
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/setup.cfg +0 -0
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/src/muse_code_msp/py.typed +0 -0
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/src/muse_code_msp.egg-info/SOURCES.txt +0 -0
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/src/muse_code_msp.egg-info/dependency_links.txt +0 -0
- {muse_code_msp-1.4.7 → muse_code_msp-1.4.8}/src/muse_code_msp.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: muse-code-msp
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.8
|
|
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.
|
|
8
|
+
version = "1.4.8"
|
|
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:
|
|
10
|
+
SCHEMA_FINGERPRINT: Final[str] = "sha256:4e3200c3c9dc0cd7919d11022630d43f9bc1c5cdda375381e90b0183b5665069"
|
|
11
11
|
SCHEMA_VERSION: Final[int] = 1
|
|
12
12
|
EXPERIMENTAL: Final[bool] = False
|
|
13
|
-
REQUIRED_HOST_VERSION: Final[str] = "1.4.
|
|
13
|
+
REQUIRED_HOST_VERSION: Final[str] = "1.4.8"
|
|
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
|
|
610
|
-
"""
|
|
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
|
|
@@ -991,7 +1038,10 @@ class Item(_ItemBase, total=False):
|
|
|
991
1038
|
hookKey: str
|
|
992
1039
|
label: str
|
|
993
1040
|
message: str
|
|
1041
|
+
messagePhase: MessagePhase
|
|
994
1042
|
modelVisibleContent: list[ModelVisibleContent]
|
|
1043
|
+
monitorDescription: str
|
|
1044
|
+
monitorId: str
|
|
995
1045
|
objective: str
|
|
996
1046
|
outcome: CompactionOutcome
|
|
997
1047
|
outputRef: OutputRef
|
|
@@ -1568,6 +1618,7 @@ class Session(_SessionBase, total=False):
|
|
|
1568
1618
|
branch: str
|
|
1569
1619
|
createdByClient: ClientInfo
|
|
1570
1620
|
firstUserPrompt: str
|
|
1621
|
+
generatedName: str
|
|
1571
1622
|
kind: SessionKind
|
|
1572
1623
|
lastActivityAt: str
|
|
1573
1624
|
name: str
|
|
@@ -1786,6 +1837,7 @@ class _SessionNameChangedParamsBase(TypedDict):
|
|
|
1786
1837
|
class SessionNameChangedParams(_SessionNameChangedParamsBase, total=False):
|
|
1787
1838
|
"""`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
1839
|
|
|
1840
|
+
generatedName: str
|
|
1789
1841
|
nameOrigin: SessionNameOrigin
|
|
1790
1842
|
|
|
1791
1843
|
|
|
@@ -1853,6 +1905,7 @@ class SessionResumeParams(_SessionResumeParamsBase, total=False):
|
|
|
1853
1905
|
cursor: str | None
|
|
1854
1906
|
excludeItems: bool
|
|
1855
1907
|
history: HistoryPreference
|
|
1908
|
+
permissionProfile: str
|
|
1856
1909
|
|
|
1857
1910
|
|
|
1858
1911
|
class _SessionResumeResultBase(TypedDict):
|
|
@@ -2049,6 +2102,7 @@ class SkillCatalogEntry(_SkillCatalogEntryBase, total=False):
|
|
|
2049
2102
|
|
|
2050
2103
|
argumentHint: str
|
|
2051
2104
|
pluginId: str
|
|
2105
|
+
title: str
|
|
2052
2106
|
|
|
2053
2107
|
|
|
2054
2108
|
class SkillChangedParams(TypedDict):
|
|
@@ -2521,6 +2575,25 @@ class TurnInterruptResult(TypedDict):
|
|
|
2521
2575
|
turnId: str
|
|
2522
2576
|
|
|
2523
2577
|
|
|
2578
|
+
class _TurnModelRetryScheduledParamsBase(TypedDict):
|
|
2579
|
+
attempt: int
|
|
2580
|
+
maxAttempts: int
|
|
2581
|
+
nextAttempt: int
|
|
2582
|
+
retryDelayMs: int
|
|
2583
|
+
sessionId: str
|
|
2584
|
+
sourceRange: SourceRange
|
|
2585
|
+
turnId: str
|
|
2586
|
+
viewCursor: str
|
|
2587
|
+
|
|
2588
|
+
|
|
2589
|
+
class TurnModelRetryScheduledParams(_TurnModelRetryScheduledParamsBase, total=False):
|
|
2590
|
+
"""`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."""
|
|
2591
|
+
|
|
2592
|
+
errorKind: str
|
|
2593
|
+
httpStatus: int
|
|
2594
|
+
system: str
|
|
2595
|
+
|
|
2596
|
+
|
|
2524
2597
|
class _TurnRefBase(TypedDict):
|
|
2525
2598
|
commandId: str
|
|
2526
2599
|
turnId: str
|
|
@@ -3176,6 +3249,7 @@ NOTIFICATIONS: Final[dict[str, NotificationSpec]] = {
|
|
|
3176
3249
|
"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
3250
|
"turn/completed": {"description": "Turn terminal: completed | failed | cancelled, with usage and the settled error object.", "params": "TurnCompletedParams"},
|
|
3178
3251
|
"turn/foregroundCompleted": {"description": "The turn's foreground work is done while named background reminder checks hold the turn open; explicitly non-terminal.", "params": "TurnForegroundCompletedParams"},
|
|
3252
|
+
"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
3253
|
"turn/retracted": {"description": "An accepted interrupt's paired retract durably settled, accepted or declined.", "params": "TurnRetractedParams"},
|
|
3180
3254
|
"turn/retryScheduled": {"description": "A failing model attempt's retry is scheduled and waiting out its backoff; observable mid-turn, non-terminal.", "params": "TurnRetryScheduledParams"},
|
|
3181
3255
|
"turn/started": {"description": "A foreground turn began running.", "params": "TurnStartedParams"},
|
|
@@ -3227,4 +3301,4 @@ ERRORS: Final[tuple[ErrorSpec, ...]] = (
|
|
|
3227
3301
|
{"code": -32057, "kind": "userInputAnswerInvalid", "retryable": False, "overrideKinds": ()},
|
|
3228
3302
|
)
|
|
3229
3303
|
|
|
3230
|
-
GRANTABLE_CAPABILITIES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup",)
|
|
3304
|
+
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:
|
|
10
|
+
SCHEMA_FINGERPRINT: Final[str] = "sha256:c533a6c39dca76ab4da20084e0b730712e0cae8db4644721290e13676aec90a3"
|
|
11
11
|
SCHEMA_VERSION: Final[int] = 1
|
|
12
12
|
EXPERIMENTAL: Final[bool] = True
|
|
13
|
-
REQUIRED_HOST_VERSION: Final[str] = "1.4.
|
|
13
|
+
REQUIRED_HOST_VERSION: Final[str] = "1.4.8"
|
|
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
|
|
825
|
-
"""
|
|
879
|
+
class ComputerUseInstalledApp(TypedDict):
|
|
880
|
+
"""One installed or running app, for Settings' app picker."""
|
|
826
881
|
|
|
882
|
+
bundleId: str
|
|
883
|
+
name: str
|
|
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
|
|
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
|
|
|
@@ -1227,7 +1300,10 @@ class Item(_ItemBase, total=False):
|
|
|
1227
1300
|
hookKey: str
|
|
1228
1301
|
label: str
|
|
1229
1302
|
message: str
|
|
1303
|
+
messagePhase: MessagePhase
|
|
1230
1304
|
modelVisibleContent: list[ModelVisibleContent]
|
|
1305
|
+
monitorDescription: str
|
|
1306
|
+
monitorId: str
|
|
1231
1307
|
objective: str
|
|
1232
1308
|
outcome: CompactionOutcome
|
|
1233
1309
|
outputRef: OutputRef
|
|
@@ -1361,15 +1437,19 @@ class LastTurn(_LastTurnBase, total=False):
|
|
|
1361
1437
|
reason: str
|
|
1362
1438
|
|
|
1363
1439
|
|
|
1364
|
-
class
|
|
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
|
-
|
|
1440
|
+
class _LogGapParamsBase(TypedDict):
|
|
1367
1441
|
after: RecordPosition
|
|
1368
1442
|
next: RecordPosition
|
|
1369
1443
|
stream: StreamRef
|
|
1370
1444
|
subscriptionId: int
|
|
1371
1445
|
|
|
1372
1446
|
|
|
1447
|
+
class LogGapParams(_LogGapParamsBase, total=False):
|
|
1448
|
+
"""`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`])."""
|
|
1449
|
+
|
|
1450
|
+
reason: LogGapReason
|
|
1451
|
+
|
|
1452
|
+
|
|
1373
1453
|
# `log/page` params.
|
|
1374
1454
|
LogPageParams = TypedDict("LogPageParams", {
|
|
1375
1455
|
"limit": "int",
|
|
@@ -1721,6 +1801,15 @@ class PendingUserInputPointer(_PendingUserInputPointerBase, total=False):
|
|
|
1721
1801
|
itemId: str
|
|
1722
1802
|
|
|
1723
1803
|
|
|
1804
|
+
class PermissionAxes(TypedDict):
|
|
1805
|
+
"""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`."""
|
|
1806
|
+
|
|
1807
|
+
approval: PermissionApprovalAxis
|
|
1808
|
+
filesystem: PermissionFilesystemAxis
|
|
1809
|
+
network: PermissionNetworkAxis
|
|
1810
|
+
reviewer: ReviewerAuthority
|
|
1811
|
+
|
|
1812
|
+
|
|
1724
1813
|
class PermissionProfileListParams(TypedDict, total=False):
|
|
1725
1814
|
"""`permissionProfile/list` params: read the native profile catalog. A read-only method — takes no lease, grants nothing."""
|
|
1726
1815
|
|
|
@@ -2078,6 +2167,7 @@ class Session(_SessionBase, total=False):
|
|
|
2078
2167
|
branch: str
|
|
2079
2168
|
createdByClient: ClientInfo
|
|
2080
2169
|
firstUserPrompt: str
|
|
2170
|
+
generatedName: str
|
|
2081
2171
|
kind: SessionKind
|
|
2082
2172
|
lastActivityAt: str
|
|
2083
2173
|
name: str
|
|
@@ -2298,6 +2388,7 @@ class _SessionNameChangedParamsBase(TypedDict):
|
|
|
2298
2388
|
class SessionNameChangedParams(_SessionNameChangedParamsBase, total=False):
|
|
2299
2389
|
"""`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
2390
|
|
|
2391
|
+
generatedName: str
|
|
2301
2392
|
nameOrigin: SessionNameOrigin
|
|
2302
2393
|
|
|
2303
2394
|
|
|
@@ -2385,6 +2476,32 @@ class SessionRenameResult(_SessionRenameResultBase, total=False):
|
|
|
2385
2476
|
name: str
|
|
2386
2477
|
|
|
2387
2478
|
|
|
2479
|
+
class _SessionReportStartupPhaseSpanBase(TypedDict):
|
|
2480
|
+
durationMs: int
|
|
2481
|
+
phase: SessionReportStartupPhase
|
|
2482
|
+
startMs: int
|
|
2483
|
+
|
|
2484
|
+
|
|
2485
|
+
class SessionReportStartupPhaseSpan(_SessionReportStartupPhaseSpanBase, total=False):
|
|
2486
|
+
"""`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)."""
|
|
2487
|
+
|
|
2488
|
+
colorProvenance: SessionReportTerminalColorProvenance
|
|
2489
|
+
|
|
2490
|
+
|
|
2491
|
+
class SessionReportStartupPhasesParams(TypedDict):
|
|
2492
|
+
"""`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)."""
|
|
2493
|
+
|
|
2494
|
+
launchNonce: str
|
|
2495
|
+
phases: list[SessionReportStartupPhaseSpan]
|
|
2496
|
+
sessionId: str
|
|
2497
|
+
|
|
2498
|
+
|
|
2499
|
+
class SessionReportStartupPhasesResult(TypedDict):
|
|
2500
|
+
"""`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)."""
|
|
2501
|
+
|
|
2502
|
+
recorded: bool
|
|
2503
|
+
|
|
2504
|
+
|
|
2388
2505
|
class _SessionResumeParamsBase(TypedDict):
|
|
2389
2506
|
commandId: str
|
|
2390
2507
|
sessionId: str
|
|
@@ -2397,6 +2514,7 @@ class SessionResumeParams(_SessionResumeParamsBase, total=False):
|
|
|
2397
2514
|
cursor: str | None
|
|
2398
2515
|
excludeItems: bool
|
|
2399
2516
|
history: HistoryPreference
|
|
2517
|
+
permissionProfile: str
|
|
2400
2518
|
|
|
2401
2519
|
|
|
2402
2520
|
class _SessionResumeResultBase(TypedDict):
|
|
@@ -2673,6 +2791,7 @@ class SkillCatalogEntry(_SkillCatalogEntryBase, total=False):
|
|
|
2673
2791
|
|
|
2674
2792
|
argumentHint: str
|
|
2675
2793
|
pluginId: str
|
|
2794
|
+
title: str
|
|
2676
2795
|
|
|
2677
2796
|
|
|
2678
2797
|
class SkillChangedParams(TypedDict):
|
|
@@ -3145,6 +3264,25 @@ class TurnInterruptResult(TypedDict):
|
|
|
3145
3264
|
turnId: str
|
|
3146
3265
|
|
|
3147
3266
|
|
|
3267
|
+
class _TurnModelRetryScheduledParamsBase(TypedDict):
|
|
3268
|
+
attempt: int
|
|
3269
|
+
maxAttempts: int
|
|
3270
|
+
nextAttempt: int
|
|
3271
|
+
retryDelayMs: int
|
|
3272
|
+
sessionId: str
|
|
3273
|
+
sourceRange: SourceRange
|
|
3274
|
+
turnId: str
|
|
3275
|
+
viewCursor: str
|
|
3276
|
+
|
|
3277
|
+
|
|
3278
|
+
class TurnModelRetryScheduledParams(_TurnModelRetryScheduledParamsBase, total=False):
|
|
3279
|
+
"""`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."""
|
|
3280
|
+
|
|
3281
|
+
errorKind: str
|
|
3282
|
+
httpStatus: int
|
|
3283
|
+
system: str
|
|
3284
|
+
|
|
3285
|
+
|
|
3148
3286
|
class _TurnRefBase(TypedDict):
|
|
3149
3287
|
commandId: str
|
|
3150
3288
|
turnId: str
|
|
@@ -3796,6 +3934,7 @@ METHODS: Final[dict[str, MethodSpec]] = {
|
|
|
3796
3934
|
"session/promptHint": {"description": "Picks one feature-tip table id over the client-supplied candidates; display-only, nothing is logged.", "params": "SessionPromptHintParams", "result": "SessionPromptHintResult"},
|
|
3797
3935
|
"session/read": {"description": "Reads one stored session without attaching: no lease, no load, no subscription, no resume record.", "params": "SessionReadParams", "result": "SessionReadResult"},
|
|
3798
3936
|
"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"},
|
|
3937
|
+
"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
3938
|
"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
3939
|
"session/setApprovalMode": {"description": "Selects a preconfigured approval enforcement mode mid-session; select, never create.", "params": "SessionSetApprovalModeParams", "result": "SessionSetApprovalModeResult"},
|
|
3801
3940
|
"session/setModel": {"description": "Reconfigures the session's model; the selection is durable and applies to subsequent model calls.", "params": "SessionSetModelParams", "result": "SessionSetModelResult"},
|
|
@@ -3882,6 +4021,7 @@ NOTIFICATIONS: Final[dict[str, NotificationSpec]] = {
|
|
|
3882
4021
|
"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
4022
|
"turn/completed": {"description": "Turn terminal: completed | failed | cancelled, with usage and the settled error object.", "params": "TurnCompletedParams"},
|
|
3884
4023
|
"turn/foregroundCompleted": {"description": "The turn's foreground work is done while named background reminder checks hold the turn open; explicitly non-terminal.", "params": "TurnForegroundCompletedParams"},
|
|
4024
|
+
"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
4025
|
"turn/retracted": {"description": "An accepted interrupt's paired retract durably settled, accepted or declined.", "params": "TurnRetractedParams"},
|
|
3886
4026
|
"turn/retryScheduled": {"description": "A failing model attempt's retry is scheduled and waiting out its backoff; observable mid-turn, non-terminal.", "params": "TurnRetryScheduledParams"},
|
|
3887
4027
|
"turn/started": {"description": "A foreground turn began running.", "params": "TurnStartedParams"},
|
|
@@ -3942,4 +4082,4 @@ ERRORS: Final[tuple[ErrorSpec, ...]] = (
|
|
|
3942
4082
|
{"code": -32072, "kind": "admissionChoiceInvalid", "retryable": False, "overrideKinds": ()},
|
|
3943
4083
|
)
|
|
3944
4084
|
|
|
3945
|
-
GRANTABLE_CAPABILITIES: Final[tuple[str, ...]] = ("userShell", "sessionMcp", "sessionListStream", "feedback", "computerUseSetup", "computerUseHostSetup", "rawLog", "peerMessaging",)
|
|
4085
|
+
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.
|
|
3
|
+
Version: 1.4.8
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|