@crowdedkingdoms/crowdyjs 11.0.0 → 12.0.0
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/MIGRATION.md +118 -0
- package/README.md +208 -0
- package/dist/crowdy-agent/browser-dispatcher.d.ts +41 -0
- package/dist/crowdy-agent/browser-dispatcher.d.ts.map +1 -0
- package/dist/crowdy-agent/browser-dispatcher.js +264 -0
- package/dist/crowdy-agent/controller.d.ts +144 -0
- package/dist/crowdy-agent/controller.d.ts.map +1 -0
- package/dist/crowdy-agent/controller.js +1239 -0
- package/dist/crowdy-agent/errors.d.ts +37 -0
- package/dist/crowdy-agent/errors.d.ts.map +1 -0
- package/dist/crowdy-agent/errors.js +107 -0
- package/dist/crowdy-agent/graphql-transport.d.ts +154 -0
- package/dist/crowdy-agent/graphql-transport.d.ts.map +1 -0
- package/dist/crowdy-agent/graphql-transport.js +854 -0
- package/dist/crowdy-agent/index.d.ts +16 -0
- package/dist/crowdy-agent/index.d.ts.map +1 -0
- package/dist/crowdy-agent/index.js +15 -0
- package/dist/crowdy-agent/registry.d.ts +29 -0
- package/dist/crowdy-agent/registry.d.ts.map +1 -0
- package/dist/crowdy-agent/registry.js +281 -0
- package/dist/crowdy-agent/schema.d.ts +72 -0
- package/dist/crowdy-agent/schema.d.ts.map +1 -0
- package/dist/crowdy-agent/schema.js +467 -0
- package/dist/crowdy-agent/studio-tools.d.ts +15 -0
- package/dist/crowdy-agent/studio-tools.d.ts.map +1 -0
- package/dist/crowdy-agent/studio-tools.js +280 -0
- package/dist/crowdy-agent/tool-descriptors.d.ts +4 -0
- package/dist/crowdy-agent/tool-descriptors.d.ts.map +1 -0
- package/dist/crowdy-agent/tool-descriptors.js +1049 -0
- package/dist/crowdy-agent/transport.d.ts +152 -0
- package/dist/crowdy-agent/transport.d.ts.map +1 -0
- package/dist/crowdy-agent/transport.js +27 -0
- package/dist/crowdy-agent/types.d.ts +328 -0
- package/dist/crowdy-agent/types.d.ts.map +1 -0
- package/dist/crowdy-agent/types.js +37 -0
- package/dist/crowdy-client.d.ts +3 -0
- package/dist/crowdy-client.d.ts.map +1 -1
- package/dist/crowdy-client.js +6 -0
- package/dist/crowdy-studio/agent-dom-shell.d.ts +40 -0
- package/dist/crowdy-studio/agent-dom-shell.d.ts.map +1 -0
- package/dist/crowdy-studio/agent-dom-shell.js +354 -0
- package/dist/crowdy-studio/controller.d.ts +74 -4
- package/dist/crowdy-studio/controller.d.ts.map +1 -1
- package/dist/crowdy-studio/controller.js +450 -17
- package/dist/crowdy-studio/dom-shell.d.ts +4 -1
- package/dist/crowdy-studio/dom-shell.d.ts.map +1 -1
- package/dist/crowdy-studio/dom-shell.js +6 -1
- package/dist/crowdy-studio/index.d.ts +6 -3
- package/dist/crowdy-studio/index.d.ts.map +1 -1
- package/dist/crowdy-studio/index.js +3 -0
- package/dist/crowdy-studio/models.d.ts +67 -0
- package/dist/crowdy-studio/models.d.ts.map +1 -1
- package/dist/crowdy-studio/mount.d.ts +22 -1
- package/dist/crowdy-studio/mount.d.ts.map +1 -1
- package/dist/crowdy-studio/mount.js +163 -2
- package/dist/crowdy-studio/styles.d.ts +1 -1
- package/dist/crowdy-studio/styles.d.ts.map +1 -1
- package/dist/crowdy-studio/styles.js +5 -3
- package/dist/generated/graphql.d.ts +3753 -1
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +296 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/kit/npcs.d.ts.map +1 -1
- package/dist/kit/social.d.ts.map +1 -1
- package/dist/player-host/index.d.ts +5 -0
- package/dist/player-host/index.d.ts.map +1 -0
- package/dist/player-host/index.js +3 -0
- package/dist/player-host/lease-manager.d.ts +66 -0
- package/dist/player-host/lease-manager.d.ts.map +1 -0
- package/dist/player-host/lease-manager.js +428 -0
- package/dist/player-host/schemas.d.ts +9 -0
- package/dist/player-host/schemas.d.ts.map +1 -0
- package/dist/player-host/schemas.js +347 -0
- package/dist/player-host/tools.d.ts +13 -0
- package/dist/player-host/tools.d.ts.map +1 -0
- package/dist/player-host/tools.js +79 -0
- package/dist/player-host/types.d.ts +203 -0
- package/dist/player-host/types.d.ts.map +1 -0
- package/dist/player-host/types.js +1 -0
- package/package.json +12 -2
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
export { CrowdyStudioController, type CrowdyStudioControllerOptions, type CrowdyStudioBroker, type CrowdyStudioInvokeResult, type CrowdyStudioPhase, type CrowdyStudioPolledSurface, type CrowdyStudioRun, type CrowdyStudioRuntimeStatus, type CrowdyStudioPlayerCompute, type CrowdyStudioPlayerWallet, type CrowdyStudioState, type CrowdyStudioStopResult, type CrowdyStudioUsageSnapshot, type CrowdyStudioWalletSnapshot, } from './controller.js';
|
|
2
|
-
export { mountCrowdyStudio, type CrowdyStudioHandle, type MountCrowdyStudioOptions, } from './mount.js';
|
|
3
|
-
export { CrowdyStudioOfflineError, CrowdyStudioRevisionConflictError, cloneCrowdyStudioProject, crowdyStudioFileKey, crowdyStudioFileUri, normalizeCrowdyStudioPath, projectTargets, type CreateCrowdyStudioProjectInput, type ImportCrowdyStudioReferenceFileInput, type CrowdyStudioFileRef, type CrowdyStudioPairingPreference, type CrowdyStudioProject, type CrowdyStudioProjectFile, type CrowdyStudioProjectKind, type CrowdyStudioProjectMetadata, type CrowdyStudioProjectProvider, type CrowdyStudioProjectRevision, type CrowdyStudioProjectScope, type CrowdyStudioProjectSummary, type CrowdyStudioReferenceFile, type CrowdyStudioSaveState, type CrowdyStudioTarget, type SaveCrowdyStudioLibraryFileInput, type SaveCrowdyStudioProjectInput, } from './models.js';
|
|
1
|
+
export { CrowdyStudioController, type CrowdyStudioControllerOptions, type CrowdyStudioBroker, type CrowdyStudioAgentWorkContext, type CrowdyStudioDeploymentPlan, type CrowdyStudioDeployResult, type CrowdyStudioInvokeResult, type CrowdyStudioPhase, type CrowdyStudioPolledSurface, type CrowdyStudioRun, type CrowdyStudioRuntimeStatus, type CrowdyStudioRuntimeSync, type CrowdyStudioRuntimeSyncState, type CrowdyStudioPlayerCompute, type CrowdyStudioPlayerWallet, type CrowdyStudioState, type CrowdyStudioStopResult, type CrowdyStudioUsageSnapshot, type CrowdyStudioWalletSnapshot, } from './controller.js';
|
|
2
|
+
export { mountCrowdyStudio, type CrowdyStudioHandle, type MountCrowdyStudioAgentOptions, type MountCrowdyStudioOptions, } from './mount.js';
|
|
3
|
+
export { CrowdyStudioOfflineError, CrowdyStudioRevisionConflictError, cloneCrowdyStudioProject, crowdyStudioFileKey, crowdyStudioFileUri, normalizeCrowdyStudioPath, projectTargets, type CreateCrowdyStudioProjectInput, type ImportCrowdyStudioReferenceFileInput, type CrowdyStudioAtomicFileChange, type CrowdyStudioAtomicPatchInput, type CrowdyStudioAtomicPatchResult, type CrowdyStudioCheckpointFile, type CrowdyStudioCheckpointMetadata, type CrowdyStudioCheckpointRestoreInput, type CrowdyStudioCheckpointRestoreResult, type CrowdyStudioFileRef, type CrowdyStudioPairingPreference, type CrowdyStudioProject, type CrowdyStudioProjectFile, type CrowdyStudioProjectKind, type CrowdyStudioProjectMetadata, type CrowdyStudioProjectProvider, type CrowdyStudioProjectRevision, type CrowdyStudioProjectScope, type CrowdyStudioProjectSummary, type CrowdyStudioReferenceFile, type CrowdyStudioSaveState, type CrowdyStudioSynchronizationProvider, type CrowdyStudioProjectSynchronization, type CrowdyStudioPatchOperation, type CrowdyStudioTarget, type SaveCrowdyStudioLibraryFileInput, type SaveCrowdyStudioProjectInput, } from './models.js';
|
|
4
4
|
export { createCrowdyStudioStarterProject, type CrowdyStudioNewProjectOptions, } from './starter-projects.js';
|
|
5
5
|
export { parseRustcDiagnostics, type CrowdyStudioDiagnostic, type CrowdyStudioDiagnosticSeverity, type CrowdyStudioDiagnosticSource, } from './diagnostics.js';
|
|
6
6
|
export { isCurrentDiagnosticVersion, type MonacoCrowdyStudioEditorOptions, } from './monaco-editor.js';
|
|
7
7
|
export { EMBEDDED_PLATFORM_INDEX, MAX_PLATFORM_CRATES, MAX_PLATFORM_CRATE_FIELD_LENGTH, MAX_PLATFORM_INDEX_BYTES, computePlatformIndexContentHash, loadPlatformIndex, type PlatformCrate, type PlatformIndex, type PlatformSymbol, type PlatformSymbolKind, } from '../live-coding/platform-index.js';
|
|
8
8
|
export { DEFAULT_VFS_LIMITS, VfsLimitError, VirtualFileSystem, offsetAt, type VirtualDocument, type VirtualFileSystemLimits, } from '../live-coding/vfs.js';
|
|
9
9
|
export { WorkerLanguageClient, WorkerMessageReader, WorkerMessageWriter, createDefaultRustLanguageWorker, type LanguageWorkerLike, type WorkerLanguageClientOptions, } from '../live-coding/worker-transport.js';
|
|
10
|
+
export { CrowdyStudioAgentDomShell, type CrowdyStudioAgentDomShellOptions, } from './agent-dom-shell.js';
|
|
11
|
+
export * from '../crowdy-agent/index.js';
|
|
12
|
+
export * from '../player-host/index.js';
|
|
10
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,wBAAwB,EACxB,iCAAiC,EACjC,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,cAAc,EACd,KAAK,8BAA8B,EACnC,KAAK,oCAAoC,EACzC,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,4BAA4B,GAClC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gCAAgC,EAChC,KAAK,6BAA6B,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,KAAK,+BAA+B,GACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,+BAA+B,EAC/B,wBAAwB,EACxB,+BAA+B,EAC/B,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,GACjC,MAAM,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,wBAAwB,EACxB,iCAAiC,EACjC,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,yBAAyB,EACzB,cAAc,EACd,KAAK,8BAA8B,EACnC,KAAK,oCAAoC,EACzC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,KAAK,mCAAmC,EACxC,KAAK,mBAAmB,EACxB,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,mCAAmC,EACxC,KAAK,kCAAkC,EACvC,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,4BAA4B,GAClC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gCAAgC,EAChC,KAAK,6BAA6B,GACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,KAAK,+BAA+B,GACrC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,+BAA+B,EAC/B,wBAAwB,EACxB,+BAA+B,EAC/B,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,kBAAkB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,GACjC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,GACtC,MAAM,sBAAsB,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
|
|
@@ -7,3 +7,6 @@ export { isCurrentDiagnosticVersion, } from './monaco-editor.js';
|
|
|
7
7
|
export { EMBEDDED_PLATFORM_INDEX, MAX_PLATFORM_CRATES, MAX_PLATFORM_CRATE_FIELD_LENGTH, MAX_PLATFORM_INDEX_BYTES, computePlatformIndexContentHash, loadPlatformIndex, } from '../live-coding/platform-index.js';
|
|
8
8
|
export { DEFAULT_VFS_LIMITS, VfsLimitError, VirtualFileSystem, offsetAt, } from '../live-coding/vfs.js';
|
|
9
9
|
export { WorkerLanguageClient, WorkerMessageReader, WorkerMessageWriter, createDefaultRustLanguageWorker, } from '../live-coding/worker-transport.js';
|
|
10
|
+
export { CrowdyStudioAgentDomShell, } from './agent-dom-shell.js';
|
|
11
|
+
export * from '../crowdy-agent/index.js';
|
|
12
|
+
export * from '../player-host/index.js';
|
|
@@ -123,6 +123,73 @@ export interface CrowdyStudioProjectProvider {
|
|
|
123
123
|
importReferenceFile(input: ImportCrowdyStudioReferenceFileInput): Promise<CrowdyStudioProject>;
|
|
124
124
|
savePersonalLibraryFile(input: SaveCrowdyStudioLibraryFileInput): Promise<CrowdyStudioReferenceFile>;
|
|
125
125
|
}
|
|
126
|
+
export type CrowdyStudioPatchOperation = 'CREATE' | 'REPLACE';
|
|
127
|
+
/** One routine, non-destructive file replacement in an atomic agent patch. */
|
|
128
|
+
export interface CrowdyStudioAtomicFileChange {
|
|
129
|
+
target: CrowdyStudioTarget;
|
|
130
|
+
path: string;
|
|
131
|
+
operation: CrowdyStudioPatchOperation;
|
|
132
|
+
content: string;
|
|
133
|
+
/** `ABSENT` for CREATE, otherwise the exact current sha256 digest. */
|
|
134
|
+
expectedContentHash: string | 'ABSENT';
|
|
135
|
+
}
|
|
136
|
+
export interface CrowdyStudioAtomicPatchInput {
|
|
137
|
+
expectedRevisionId: string;
|
|
138
|
+
changes: readonly CrowdyStudioAtomicFileChange[];
|
|
139
|
+
}
|
|
140
|
+
export interface CrowdyStudioCheckpointFile {
|
|
141
|
+
target: CrowdyStudioTarget;
|
|
142
|
+
path: string;
|
|
143
|
+
contentHash: string;
|
|
144
|
+
byteLength: number;
|
|
145
|
+
}
|
|
146
|
+
/** Source-free checkpoint metadata safe for Studio state and agent events. */
|
|
147
|
+
export interface CrowdyStudioCheckpointMetadata {
|
|
148
|
+
checkpointId: string;
|
|
149
|
+
projectRevisionId: string;
|
|
150
|
+
contentHash: string;
|
|
151
|
+
reason: 'AGENT_WRITE' | 'RESTORE_PREIMAGE' | 'MANUAL';
|
|
152
|
+
files: readonly CrowdyStudioCheckpointFile[];
|
|
153
|
+
createdAt: string;
|
|
154
|
+
restoredAt?: string;
|
|
155
|
+
}
|
|
156
|
+
export interface CrowdyStudioAtomicPatchResult {
|
|
157
|
+
project: CrowdyStudioProject;
|
|
158
|
+
checkpoint: CrowdyStudioCheckpointMetadata;
|
|
159
|
+
changedFiles: readonly CrowdyStudioCheckpointFile[];
|
|
160
|
+
}
|
|
161
|
+
export interface CrowdyStudioCheckpointRestoreInput {
|
|
162
|
+
projectId: string;
|
|
163
|
+
checkpointId: string;
|
|
164
|
+
expectedRevisionId: string;
|
|
165
|
+
/** Opaque single-use grant from the durable orchestrator. */
|
|
166
|
+
approvalGrant: string;
|
|
167
|
+
}
|
|
168
|
+
export interface CrowdyStudioCheckpointRestoreResult {
|
|
169
|
+
project: CrowdyStudioProject;
|
|
170
|
+
preRestoreCheckpoint: CrowdyStudioCheckpointMetadata;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Optional durable synchronization hooks. A generated Game API adapter can
|
|
174
|
+
* implement these after schema reconciliation; the headless kernel stays
|
|
175
|
+
* transport-neutral and tests can inject deterministic fakes.
|
|
176
|
+
*/
|
|
177
|
+
export interface CrowdyStudioSynchronizationProvider {
|
|
178
|
+
applyAtomicPatch(input: CrowdyStudioProjectScope & {
|
|
179
|
+
projectId: string;
|
|
180
|
+
expectedRevisionId: string;
|
|
181
|
+
changes: readonly CrowdyStudioAtomicFileChange[];
|
|
182
|
+
}): Promise<CrowdyStudioAtomicPatchResult>;
|
|
183
|
+
listCheckpoints(input: CrowdyStudioProjectScope & {
|
|
184
|
+
projectId: string;
|
|
185
|
+
}): Promise<readonly CrowdyStudioCheckpointMetadata[]>;
|
|
186
|
+
restoreCheckpoint(input: CrowdyStudioProjectScope & CrowdyStudioCheckpointRestoreInput): Promise<CrowdyStudioCheckpointRestoreResult>;
|
|
187
|
+
}
|
|
188
|
+
export interface CrowdyStudioProjectSynchronization {
|
|
189
|
+
source: 'AGENT' | 'REMOTE';
|
|
190
|
+
expectedPreviousRevisionId?: string;
|
|
191
|
+
checkpoint?: CrowdyStudioCheckpointMetadata;
|
|
192
|
+
}
|
|
126
193
|
/** Provider error indicating that the expected revision lost a save race. */
|
|
127
194
|
export declare class CrowdyStudioRevisionConflictError extends Error {
|
|
128
195
|
readonly remoteProject?: CrowdyStudioProject | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/models.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/models.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,34 @@
|
|
|
1
1
|
import { CrowdyStudioController, type CrowdyStudioControllerOptions } from './controller.js';
|
|
2
|
-
import type
|
|
2
|
+
import { CrowdyAgentToolRegistry, CrowdyStudioAgentController, type CrowdyAgentBrowserToolHandlersV1, type CrowdyStudioAgentControllerOptionsV1 } from '../crowdy-agent/index.js';
|
|
3
|
+
import { AgentControlLeaseManager, type AgentControlLeaseManagerOptionsV1, type PlayerHostAdapterV1 } from '../player-host/index.js';
|
|
4
|
+
import type { CrowdyStudioEditorAdapter, CrowdyStudioEditorMode } from './editor.js';
|
|
3
5
|
import { type MonacoCrowdyStudioEditorOptions } from './monaco-editor.js';
|
|
4
6
|
export interface MountCrowdyStudioOptions extends CrowdyStudioControllerOptions, MonacoCrowdyStudioEditorOptions {
|
|
7
|
+
/** Optional durable Agentic Crowdy Studio vertical slice. */
|
|
8
|
+
agent?: MountCrowdyStudioAgentOptions;
|
|
9
|
+
}
|
|
10
|
+
export interface MountCrowdyStudioAgentOptions extends Omit<CrowdyStudioAgentControllerOptionsV1, 'browserDispatcher' | 'beforeAgentWork' | 'onEpochAttached' | 'onLeaseChanged' | 'onPreempt' | 'resolveProjectBinding'> {
|
|
11
|
+
registry?: CrowdyAgentToolRegistry;
|
|
12
|
+
/** Exact additional handlers, normally `game.extension.<game>.*`. */
|
|
13
|
+
browserHandlers?: CrowdyAgentBrowserToolHandlersV1;
|
|
14
|
+
playerHost?: PlayerHostAdapterV1;
|
|
15
|
+
controlGate?: AgentControlLeaseManagerOptionsV1;
|
|
16
|
+
onLocalPreempt?: CrowdyStudioAgentControllerOptionsV1['onPreempt'];
|
|
17
|
+
autoInitialize?: boolean;
|
|
5
18
|
}
|
|
6
19
|
export interface CrowdyStudioHandle {
|
|
7
20
|
controller: CrowdyStudioController;
|
|
21
|
+
agent: CrowdyStudioAgentController | null;
|
|
22
|
+
controlLeaseManager: AgentControlLeaseManager | null;
|
|
8
23
|
editorMode: CrowdyStudioEditorMode;
|
|
9
24
|
destroy(): void;
|
|
10
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Keep an embedded editor fitted to its host. Hosts can resize without a
|
|
28
|
+
* window resize (for example when a game drags a dock splitter), so Monaco
|
|
29
|
+
* must follow the element itself rather than the browser viewport.
|
|
30
|
+
*/
|
|
31
|
+
export declare function observeCrowdyStudioEditorLayout(host: HTMLElement, currentEditor: () => CrowdyStudioEditorAdapter | null): () => void;
|
|
11
32
|
/**
|
|
12
33
|
* Mount the project-first Crowdy Studio. Monaco and its browser Rust worker are
|
|
13
34
|
* loaded lazily; any editor/worker/WASM startup failure keeps the full project
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/mount.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EACnC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/mount.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,EACnC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,uBAAuB,EACvB,2BAA2B,EAE3B,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,EAC1C,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,wBAAwB,EAExB,KAAK,iCAAiC,EACtC,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,yBAAyB,EAEzB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,oBAAoB,CAAC;AAG5B,MAAM,WAAW,wBACf,SAAQ,6BAA6B,EACnC,+BAA+B;IACjC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,6BAA6B,CAAC;CACvC;AAED,MAAM,WAAW,6BACf,SAAQ,IAAI,CACV,oCAAoC,EAClC,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,GAChB,WAAW,GACX,uBAAuB,CAC1B;IACD,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,qEAAqE;IACrE,eAAe,CAAC,EAAE,gCAAgC,CAAC;IACnD,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,WAAW,CAAC,EAAE,iCAAiC,CAAC;IAChD,cAAc,CAAC,EAAE,oCAAoC,CAAC,WAAW,CAAC,CAAC;IACnE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAC1C,mBAAmB,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACrD,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,yBAAyB,GAAG,IAAI,GACpD,MAAM,IAAI,CAmBZ;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CA6O7B"}
|
|
@@ -1,7 +1,38 @@
|
|
|
1
1
|
import { CrowdyStudioController, } from './controller.js';
|
|
2
|
+
import { CROWDY_AGENT_TOOL_REGISTRY_V1, CrowdyAgentBrowserToolDispatcher, CrowdyStudioAgentController, createCrowdyStudioAgentTools, } from '../crowdy-agent/index.js';
|
|
3
|
+
import { createPlayerHostAgentTools, } from '../player-host/index.js';
|
|
2
4
|
import { CrowdyStudioDomShell } from './dom-shell.js';
|
|
3
5
|
import { createMonacoCrowdyStudioEditor, } from './monaco-editor.js';
|
|
4
6
|
import { createTextareaCrowdyStudioEditor } from './textarea-editor.js';
|
|
7
|
+
/**
|
|
8
|
+
* Keep an embedded editor fitted to its host. Hosts can resize without a
|
|
9
|
+
* window resize (for example when a game drags a dock splitter), so Monaco
|
|
10
|
+
* must follow the element itself rather than the browser viewport.
|
|
11
|
+
*/
|
|
12
|
+
export function observeCrowdyStudioEditorLayout(host, currentEditor) {
|
|
13
|
+
const Observer = globalThis.ResizeObserver;
|
|
14
|
+
if (!Observer)
|
|
15
|
+
return () => { };
|
|
16
|
+
let stopped = false;
|
|
17
|
+
let queued = false;
|
|
18
|
+
const observer = new Observer(() => {
|
|
19
|
+
if (stopped || queued)
|
|
20
|
+
return;
|
|
21
|
+
queued = true;
|
|
22
|
+
queueMicrotask(() => {
|
|
23
|
+
queued = false;
|
|
24
|
+
if (!stopped)
|
|
25
|
+
currentEditor()?.layout();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
observer.observe(host);
|
|
29
|
+
return () => {
|
|
30
|
+
if (stopped)
|
|
31
|
+
return;
|
|
32
|
+
stopped = true;
|
|
33
|
+
observer.disconnect();
|
|
34
|
+
};
|
|
35
|
+
}
|
|
5
36
|
/**
|
|
6
37
|
* Mount the project-first Crowdy Studio. Monaco and its browser Rust worker are
|
|
7
38
|
* loaded lazily; any editor/worker/WASM startup failure keeps the full project
|
|
@@ -12,10 +43,102 @@ export async function mountCrowdyStudio(host, options) {
|
|
|
12
43
|
throw new Error('mountCrowdyStudio requires a DOM document');
|
|
13
44
|
}
|
|
14
45
|
const controller = new CrowdyStudioController(options);
|
|
15
|
-
|
|
46
|
+
let agent = null;
|
|
47
|
+
let controlLeaseManager = null;
|
|
48
|
+
if (options.agent) {
|
|
49
|
+
const registry = options.agent.registry ?? CROWDY_AGENT_TOOL_REGISTRY_V1;
|
|
50
|
+
const hostTools = options.agent.playerHost
|
|
51
|
+
? createPlayerHostAgentTools(options.agent.playerHost, {
|
|
52
|
+
...options.agent.controlGate,
|
|
53
|
+
contextVersion: options.agent.controlGate?.contextVersion ??
|
|
54
|
+
(() => agent?.getState().session?.contextVersion ??
|
|
55
|
+
controller.getAgentContext().contextVersion),
|
|
56
|
+
})
|
|
57
|
+
: null;
|
|
58
|
+
controlLeaseManager = hostTools?.leaseManager ?? null;
|
|
59
|
+
const handlers = mergeAgentHandlers(createCrowdyStudioAgentTools(controller, {
|
|
60
|
+
getClientEpoch: () => agent?.getState().clientEpoch ?? null,
|
|
61
|
+
getContextVersion: () => agent?.getState().session?.contextVersion,
|
|
62
|
+
getLeaseKinds: () => agent
|
|
63
|
+
?.getState()
|
|
64
|
+
.leases.filter((lease) => lease.status === 'ACTIVE')
|
|
65
|
+
.map((lease) => lease.kind) ?? [],
|
|
66
|
+
getHostCapabilityRevision: () => controlLeaseManager?.snapshot().capabilities?.revision,
|
|
67
|
+
isLeaseActive: (leaseId, kind) => agent
|
|
68
|
+
?.getState()
|
|
69
|
+
.leases.some((lease) => lease.leaseId === leaseId &&
|
|
70
|
+
lease.kind === kind &&
|
|
71
|
+
lease.status === 'ACTIVE') ?? false,
|
|
72
|
+
}), hostTools?.handlers, options.agent.browserHandlers);
|
|
73
|
+
const dispatcher = new CrowdyAgentBrowserToolDispatcher({
|
|
74
|
+
registry,
|
|
75
|
+
handlers,
|
|
76
|
+
getSessionId: () => agent?.getState().session?.sessionId ?? null,
|
|
77
|
+
getClientEpoch: () => agent?.getState().clientEpoch ?? null,
|
|
78
|
+
getContextVersion: () => agent?.getState().session?.contextVersion ??
|
|
79
|
+
controller.getAgentContext().contextVersion,
|
|
80
|
+
getMode: () => agent?.getState().session?.mode ?? 'ASK',
|
|
81
|
+
});
|
|
82
|
+
const agentOptions = options.agent;
|
|
83
|
+
agent = new CrowdyStudioAgentController({
|
|
84
|
+
...agentOptions,
|
|
85
|
+
browserDispatcher: dispatcher,
|
|
86
|
+
resolveProjectBinding: async () => {
|
|
87
|
+
const project = controller.getState().project;
|
|
88
|
+
if (project && !(await controller.saveNow())) {
|
|
89
|
+
throw new Error('Resolve the selected project save before starting the agent');
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
...(project ? { projectId: project.projectId } : {}),
|
|
93
|
+
gridId: project?.gridId ?? options.gridId,
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
beforeAgentWork: async () => {
|
|
97
|
+
await controller.prepareForAgentWork();
|
|
98
|
+
},
|
|
99
|
+
onPreempt: (reason) => {
|
|
100
|
+
controlLeaseManager?.preempt(reason);
|
|
101
|
+
agentOptions.onLocalPreempt?.(reason);
|
|
102
|
+
},
|
|
103
|
+
onEpochAttached: (clientEpoch) => {
|
|
104
|
+
controlLeaseManager?.attach(clientEpoch);
|
|
105
|
+
if (controlLeaseManager) {
|
|
106
|
+
void controlLeaseManager.refreshCapabilities().catch(() => {
|
|
107
|
+
controlLeaseManager?.preempt('CONTEXT_CHANGED');
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
onLeaseChanged: (lease) => {
|
|
112
|
+
if (!controlLeaseManager || lease.kind !== 'PLAY')
|
|
113
|
+
return;
|
|
114
|
+
if (lease.status === 'ACTIVE') {
|
|
115
|
+
void controlLeaseManager
|
|
116
|
+
.refreshCapabilities()
|
|
117
|
+
.then(() => controlLeaseManager?.grantLease(lease))
|
|
118
|
+
.catch(() => controlLeaseManager?.preempt('CONTEXT_CHANGED'));
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
controlLeaseManager.preempt(lease.revokedReason ?? 'LEASE_EXPIRED');
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
const shell = new CrowdyStudioDomShell(host, controller, agent ?? undefined, {
|
|
127
|
+
getPlayLeaseContext: () => {
|
|
128
|
+
const capabilities = controlLeaseManager?.snapshot().capabilities;
|
|
129
|
+
return capabilities
|
|
130
|
+
? {
|
|
131
|
+
controlledEntityId: capabilities.controlledEntityId,
|
|
132
|
+
hostCapabilityRevision: capabilities.revision,
|
|
133
|
+
}
|
|
134
|
+
: null;
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
const unsubscribeHumanEdit = controller.onHumanEdit(() => agent?.preemptForHumanEdit());
|
|
16
138
|
let editor = null;
|
|
17
139
|
let destroyed = false;
|
|
18
140
|
let recoveringEditor = false;
|
|
141
|
+
const disconnectLayoutObserver = observeCrowdyStudioEditorLayout(host, () => editor);
|
|
19
142
|
const callbacks = {
|
|
20
143
|
onProjectFileChange: (target, path, content) => controller.updateFile(target, path, content),
|
|
21
144
|
onLocalDiagnostics: (diagnostics) => controller.setLocalDiagnostics(diagnostics),
|
|
@@ -33,16 +156,25 @@ export async function mountCrowdyStudio(host, options) {
|
|
|
33
156
|
controller.setLocalDiagnostics([]);
|
|
34
157
|
editor = createTextareaCrowdyStudioEditor(shell.editorHost, callbacks);
|
|
35
158
|
editor.sync(controller.getState());
|
|
159
|
+
editor.layout();
|
|
36
160
|
recoveringEditor = false;
|
|
37
161
|
});
|
|
38
162
|
},
|
|
39
163
|
};
|
|
164
|
+
let selectedProjectId = controller.getState().project?.projectId;
|
|
40
165
|
const unsubscribe = controller.subscribe((state) => {
|
|
41
166
|
shell.render(state);
|
|
42
167
|
editor?.sync(state);
|
|
168
|
+
const nextProjectId = state.project?.projectId;
|
|
169
|
+
if (nextProjectId !== selectedProjectId) {
|
|
170
|
+
selectedProjectId = nextProjectId;
|
|
171
|
+
agent?.projectSelectionChanged(nextProjectId);
|
|
172
|
+
}
|
|
43
173
|
});
|
|
44
174
|
const onVisibilityChange = () => {
|
|
45
|
-
|
|
175
|
+
const visible = document.visibilityState !== 'hidden';
|
|
176
|
+
controller.setPageVisible(visible);
|
|
177
|
+
agent?.setPageVisible(visible);
|
|
46
178
|
};
|
|
47
179
|
document.addEventListener('visibilitychange', onVisibilityChange);
|
|
48
180
|
onVisibilityChange();
|
|
@@ -56,18 +188,29 @@ export async function mountCrowdyStudio(host, options) {
|
|
|
56
188
|
editor = createTextareaCrowdyStudioEditor(shell.editorHost, callbacks);
|
|
57
189
|
}
|
|
58
190
|
editor.sync(controller.getState());
|
|
191
|
+
editor.layout();
|
|
192
|
+
if (agent && options.agent?.autoInitialize !== false) {
|
|
193
|
+
await agent.initialize().catch((error) => {
|
|
194
|
+
console.warn('Crowdy Studio agent could not attach; manual Studio remains available', error);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
59
197
|
}
|
|
60
198
|
catch (error) {
|
|
199
|
+
disconnectLayoutObserver();
|
|
61
200
|
document.removeEventListener('visibilitychange', onVisibilityChange);
|
|
62
201
|
unsubscribe();
|
|
63
202
|
const failedEditor = editor;
|
|
64
203
|
failedEditor?.dispose();
|
|
65
204
|
shell.dispose();
|
|
205
|
+
unsubscribeHumanEdit();
|
|
206
|
+
agent?.destroy();
|
|
66
207
|
controller.destroy();
|
|
67
208
|
throw error;
|
|
68
209
|
}
|
|
69
210
|
return {
|
|
70
211
|
controller,
|
|
212
|
+
agent,
|
|
213
|
+
controlLeaseManager,
|
|
71
214
|
get editorMode() {
|
|
72
215
|
return editor?.mode ?? 'textarea';
|
|
73
216
|
},
|
|
@@ -75,12 +218,30 @@ export async function mountCrowdyStudio(host, options) {
|
|
|
75
218
|
if (destroyed)
|
|
76
219
|
return;
|
|
77
220
|
destroyed = true;
|
|
221
|
+
disconnectLayoutObserver();
|
|
78
222
|
document.removeEventListener('visibilitychange', onVisibilityChange);
|
|
79
223
|
unsubscribe();
|
|
80
224
|
editor?.dispose();
|
|
81
225
|
editor = null;
|
|
82
226
|
shell.dispose();
|
|
227
|
+
unsubscribeHumanEdit();
|
|
228
|
+
agent?.destroy();
|
|
229
|
+
agent = null;
|
|
83
230
|
controller.destroy();
|
|
84
231
|
},
|
|
85
232
|
};
|
|
86
233
|
}
|
|
234
|
+
function mergeAgentHandlers(...sets) {
|
|
235
|
+
const merged = {};
|
|
236
|
+
for (const set of sets) {
|
|
237
|
+
if (!set)
|
|
238
|
+
continue;
|
|
239
|
+
for (const [name, handler] of Object.entries(set)) {
|
|
240
|
+
if (merged[name]) {
|
|
241
|
+
throw new Error(`Duplicate Crowdy Studio browser tool handler: ${name}`);
|
|
242
|
+
}
|
|
243
|
+
merged[name] = handler;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return Object.freeze(merged);
|
|
247
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CROWDY_STUDIO_STYLES = "\n.ck-crowdy-studio{--ck-bg:#111827;--ck-panel:#182235;--ck-line:#334155;--ck-text:#e5e7eb;--ck-muted:#94a3b8;--ck-accent:#38bdf8;display:grid;grid-template-rows:auto auto minmax(
|
|
1
|
+
export declare const CROWDY_STUDIO_STYLES = "\n.ck-crowdy-studio{--ck-bg:#111827;--ck-panel:#182235;--ck-line:#334155;--ck-text:#e5e7eb;--ck-muted:#94a3b8;--ck-accent:#38bdf8;container-type:inline-size;display:grid;grid-template-rows:auto auto minmax(240px,1fr) minmax(120px,.36fr);width:100%;height:100%;min-height:0;overflow:hidden;background:var(--ck-bg);color:var(--ck-text);font:13px/1.4 ui-sans-serif,system-ui,sans-serif;border:1px solid var(--ck-line)}\n.ck-crowdy-studio *{box-sizing:border-box}.ck-crowdy-studio button,.ck-crowdy-studio input,.ck-crowdy-studio select,.ck-crowdy-studio textarea{font:inherit}.ck-crowdy-studio button,.ck-crowdy-studio select,.ck-crowdy-studio input{background:#0f172a;color:var(--ck-text);border:1px solid var(--ck-line);border-radius:4px;padding:5px 8px}.ck-crowdy-studio button{cursor:pointer}.ck-crowdy-studio button:hover{border-color:var(--ck-accent)}.ck-crowdy-studio button:disabled{opacity:.5;cursor:not-allowed}\n.ck-crowdy-studio-toolbar,.ck-crowdy-studio-actions,.ck-crowdy-studio-tabs,.ck-crowdy-studio-panel-tabs{display:flex;align-items:center;gap:6px;padding:7px;border-bottom:1px solid var(--ck-line)}.ck-crowdy-studio-toolbar{justify-content:space-between;flex-wrap:wrap}.ck-crowdy-studio-project-tools,.ck-crowdy-studio-runtime-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}\n.ck-crowdy-studio-save[data-state=SAVED]{color:#86efac}.ck-crowdy-studio-save[data-state=SAVING]{color:#fde68a}.ck-crowdy-studio-save[data-state=CONFLICT]{color:#fca5a5}.ck-crowdy-studio-save[data-state=OFFLINE]{color:#fdba74}\n.ck-crowdy-studio-main{display:grid;grid-template-columns:230px minmax(0,1fr) 260px;min-height:0}.ck-crowdy-studio-explorer,.ck-crowdy-studio-settings{background:var(--ck-panel);overflow:auto;padding:8px}.ck-crowdy-studio-explorer{border-right:1px solid var(--ck-line)}.ck-crowdy-studio-settings{border-left:1px solid var(--ck-line)}.ck-crowdy-studio-editor-column{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0}\n.ck-crowdy-studio-editor{min-height:0;position:relative}.ck-crowdy-studio-textarea{width:100%;height:100%;min-height:0;resize:none;background:#0b1020;color:var(--ck-text);border:0;padding:12px;font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.ck-crowdy-studio-editor-notice{padding:4px 8px;background:#78350f;color:#ffedd5}\n.ck-crowdy-studio-section{margin-bottom:12px}.ck-crowdy-studio-section-header{display:flex;align-items:center;justify-content:space-between;color:var(--ck-muted);font-weight:700;text-transform:uppercase;font-size:11px;margin-bottom:4px}.ck-crowdy-studio-file{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:3px;align-items:center}.ck-crowdy-studio-file>button:first-child{text-align:left;overflow:hidden;text-overflow:ellipsis;border:0;background:transparent}.ck-crowdy-studio-file>button:not(:first-child){padding:1px 4px}\n.ck-crowdy-studio-tabs{padding:4px;overflow:auto}.ck-crowdy-studio-tab[data-active=true],.ck-crowdy-studio-panel-tab[data-active=true]{border-color:var(--ck-accent);color:#bae6fd}.ck-crowdy-studio-tab{white-space:nowrap}.ck-crowdy-studio-tab span{margin-left:7px;color:var(--ck-muted)}\n.ck-crowdy-studio-settings label{display:grid;gap:3px;margin-bottom:9px;color:var(--ck-muted)}.ck-crowdy-studio-settings input,.ck-crowdy-studio-settings select{width:100%}.ck-crowdy-studio-new{display:none;gap:6px;align-items:center;width:100%;padding:7px;border-bottom:1px solid var(--ck-line)}.ck-crowdy-studio-new[data-open=true]{display:flex}.ck-crowdy-studio-new input{flex:1}\n.ck-crowdy-studio-bottom{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;border-top:1px solid var(--ck-line)}.ck-crowdy-studio-panel{display:none;overflow:auto;padding:8px}.ck-crowdy-studio-panel[data-active=true]{display:block}.ck-crowdy-studio-panel pre{white-space:pre-wrap;margin:0;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.ck-crowdy-studio-problem{display:grid;grid-template-columns:auto auto 1fr;gap:8px;padding:3px;border-bottom:1px solid #243247}.ck-crowdy-studio-problem[data-source=rustc]{color:#fecaca}.ck-crowdy-studio-problem[data-source=local-advisory]{color:#fde68a}\n.ck-crowdy-studio-status{color:var(--ck-muted)}.ck-crowdy-studio-invoke{display:grid;grid-template-columns:180px 1fr auto;gap:6px}.ck-crowdy-studio-invoke textarea{min-height:70px;background:#0f172a;color:var(--ck-text);border:1px solid var(--ck-line)}.ck-crowdy-studio-empty{color:var(--ck-muted);padding:8px}\n.ck-crowdy-studio[data-agent=true]{grid-template-columns:minmax(0,1fr) minmax(300px,380px)}.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-toolbar,.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-new,.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-main,.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-bottom{grid-column:1}.ck-crowdy-studio-agent-dock{grid-column:2;grid-row:1/-1;display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0;padding:10px;border-left:1px solid var(--ck-line);background:#0b1220;overflow:auto}.ck-crowdy-studio-agent-dock header{display:flex;align-items:center;justify-content:space-between;gap:8px}.ck-crowdy-studio-agent-dock h2,.ck-crowdy-studio-agent-dock h3{margin:0;font-size:13px}.ck-crowdy-studio-agent-status,.ck-crowdy-studio-agent-budget,.ck-crowdy-studio-agent-lease{color:var(--ck-muted);font-size:12px}.ck-crowdy-studio-agent-modes,.ck-crowdy-studio-agent-controls{display:flex;gap:5px;flex-wrap:wrap}.ck-crowdy-studio-agent-modes button[data-active=true]{border-color:var(--ck-accent);color:#bae6fd}.ck-crowdy-studio-agent-stop{border-color:#ef4444!important;color:#fecaca!important}.ck-crowdy-studio-agent-lease-controls{display:flex;gap:6px;flex-wrap:wrap;margin:0;padding:7px;border:1px solid var(--ck-line)}.ck-crowdy-studio-agent-lease-controls legend{color:var(--ck-muted)}.ck-crowdy-studio-agent-lease-controls label{display:flex;gap:3px;align-items:center}.ck-crowdy-studio-agent-messages{display:flex;flex-direction:column;gap:6px;min-height:90px;max-height:260px;overflow:auto}.ck-crowdy-studio-agent-message,.ck-crowdy-studio-agent-stream,.ck-crowdy-studio-agent-approval,.ck-crowdy-studio-agent-diff,.ck-crowdy-studio-agent-checkpoint{padding:7px;border:1px solid var(--ck-line);border-radius:5px;background:var(--ck-panel)}.ck-crowdy-studio-agent-message[data-role=USER]{border-color:#155e75}.ck-crowdy-studio-agent-message p,.ck-crowdy-studio-agent-approval p,.ck-crowdy-studio-agent-diff p,.ck-crowdy-studio-agent-checkpoint p{margin:3px 0;white-space:pre-wrap;overflow-wrap:anywhere}.ck-crowdy-studio-agent-timeline{display:grid;gap:5px;margin:0;padding-left:22px;max-height:190px;overflow:auto}.ck-crowdy-studio-agent-timeline li{padding:4px;border-bottom:1px solid #243247}.ck-crowdy-studio-agent-timeline li>span{margin-left:6px;color:var(--ck-muted)}.ck-crowdy-studio-agent-approvals,.ck-crowdy-studio-agent-checkpoints{display:grid;gap:7px}.ck-crowdy-studio-agent-approval{border-color:#f59e0b}.ck-crowdy-studio-agent-approval code{display:block;overflow-wrap:anywhere;color:#fde68a}.ck-crowdy-studio-agent-approval>div{display:flex;gap:6px}.ck-crowdy-studio-agent-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:auto}.ck-crowdy-studio-agent-composer textarea{min-height:62px;resize:vertical;background:#0f172a;color:var(--ck-text);border:1px solid var(--ck-line);padding:7px}.ck-crowdy-studio :focus-visible{outline:2px solid var(--ck-accent);outline-offset:2px}\n@container(max-width:900px){.ck-crowdy-studio-main{grid-template-columns:180px minmax(0,1fr)}.ck-crowdy-studio-settings{display:none}}@container(max-width:620px){.ck-crowdy-studio-main{grid-template-columns:1fr}.ck-crowdy-studio-explorer{display:none}}\n@container(max-width:760px){.ck-crowdy-studio[data-agent=true]{grid-template-columns:1fr;grid-template-rows:auto auto minmax(240px,1fr) minmax(120px,.36fr) minmax(300px,.7fr);overflow:auto}.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-agent-dock{grid-column:1;grid-row:5;border-left:0;border-top:1px solid var(--ck-line)}}\n";
|
|
2
2
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/crowdy-studio/styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,y1PAehC,CAAC"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
export const CROWDY_STUDIO_STYLES = `
|
|
2
|
-
.ck-crowdy-studio{--ck-bg:#111827;--ck-panel:#182235;--ck-line:#334155;--ck-text:#e5e7eb;--ck-muted:#94a3b8;--ck-accent:#38bdf8;display:grid;grid-template-rows:auto auto minmax(
|
|
2
|
+
.ck-crowdy-studio{--ck-bg:#111827;--ck-panel:#182235;--ck-line:#334155;--ck-text:#e5e7eb;--ck-muted:#94a3b8;--ck-accent:#38bdf8;container-type:inline-size;display:grid;grid-template-rows:auto auto minmax(240px,1fr) minmax(120px,.36fr);width:100%;height:100%;min-height:0;overflow:hidden;background:var(--ck-bg);color:var(--ck-text);font:13px/1.4 ui-sans-serif,system-ui,sans-serif;border:1px solid var(--ck-line)}
|
|
3
3
|
.ck-crowdy-studio *{box-sizing:border-box}.ck-crowdy-studio button,.ck-crowdy-studio input,.ck-crowdy-studio select,.ck-crowdy-studio textarea{font:inherit}.ck-crowdy-studio button,.ck-crowdy-studio select,.ck-crowdy-studio input{background:#0f172a;color:var(--ck-text);border:1px solid var(--ck-line);border-radius:4px;padding:5px 8px}.ck-crowdy-studio button{cursor:pointer}.ck-crowdy-studio button:hover{border-color:var(--ck-accent)}.ck-crowdy-studio button:disabled{opacity:.5;cursor:not-allowed}
|
|
4
4
|
.ck-crowdy-studio-toolbar,.ck-crowdy-studio-actions,.ck-crowdy-studio-tabs,.ck-crowdy-studio-panel-tabs{display:flex;align-items:center;gap:6px;padding:7px;border-bottom:1px solid var(--ck-line)}.ck-crowdy-studio-toolbar{justify-content:space-between;flex-wrap:wrap}.ck-crowdy-studio-project-tools,.ck-crowdy-studio-runtime-tools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
|
|
5
5
|
.ck-crowdy-studio-save[data-state=SAVED]{color:#86efac}.ck-crowdy-studio-save[data-state=SAVING]{color:#fde68a}.ck-crowdy-studio-save[data-state=CONFLICT]{color:#fca5a5}.ck-crowdy-studio-save[data-state=OFFLINE]{color:#fdba74}
|
|
6
6
|
.ck-crowdy-studio-main{display:grid;grid-template-columns:230px minmax(0,1fr) 260px;min-height:0}.ck-crowdy-studio-explorer,.ck-crowdy-studio-settings{background:var(--ck-panel);overflow:auto;padding:8px}.ck-crowdy-studio-explorer{border-right:1px solid var(--ck-line)}.ck-crowdy-studio-settings{border-left:1px solid var(--ck-line)}.ck-crowdy-studio-editor-column{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0}
|
|
7
|
-
.ck-crowdy-studio-editor{min-height:0;position:relative}.ck-crowdy-studio-textarea{width:100%;height:100%;min-height:
|
|
7
|
+
.ck-crowdy-studio-editor{min-height:0;position:relative}.ck-crowdy-studio-textarea{width:100%;height:100%;min-height:0;resize:none;background:#0b1020;color:var(--ck-text);border:0;padding:12px;font:13px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.ck-crowdy-studio-editor-notice{padding:4px 8px;background:#78350f;color:#ffedd5}
|
|
8
8
|
.ck-crowdy-studio-section{margin-bottom:12px}.ck-crowdy-studio-section-header{display:flex;align-items:center;justify-content:space-between;color:var(--ck-muted);font-weight:700;text-transform:uppercase;font-size:11px;margin-bottom:4px}.ck-crowdy-studio-file{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:3px;align-items:center}.ck-crowdy-studio-file>button:first-child{text-align:left;overflow:hidden;text-overflow:ellipsis;border:0;background:transparent}.ck-crowdy-studio-file>button:not(:first-child){padding:1px 4px}
|
|
9
9
|
.ck-crowdy-studio-tabs{padding:4px;overflow:auto}.ck-crowdy-studio-tab[data-active=true],.ck-crowdy-studio-panel-tab[data-active=true]{border-color:var(--ck-accent);color:#bae6fd}.ck-crowdy-studio-tab{white-space:nowrap}.ck-crowdy-studio-tab span{margin-left:7px;color:var(--ck-muted)}
|
|
10
10
|
.ck-crowdy-studio-settings label{display:grid;gap:3px;margin-bottom:9px;color:var(--ck-muted)}.ck-crowdy-studio-settings input,.ck-crowdy-studio-settings select{width:100%}.ck-crowdy-studio-new{display:none;gap:6px;align-items:center;width:100%;padding:7px;border-bottom:1px solid var(--ck-line)}.ck-crowdy-studio-new[data-open=true]{display:flex}.ck-crowdy-studio-new input{flex:1}
|
|
11
11
|
.ck-crowdy-studio-bottom{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;border-top:1px solid var(--ck-line)}.ck-crowdy-studio-panel{display:none;overflow:auto;padding:8px}.ck-crowdy-studio-panel[data-active=true]{display:block}.ck-crowdy-studio-panel pre{white-space:pre-wrap;margin:0;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.ck-crowdy-studio-problem{display:grid;grid-template-columns:auto auto 1fr;gap:8px;padding:3px;border-bottom:1px solid #243247}.ck-crowdy-studio-problem[data-source=rustc]{color:#fecaca}.ck-crowdy-studio-problem[data-source=local-advisory]{color:#fde68a}
|
|
12
12
|
.ck-crowdy-studio-status{color:var(--ck-muted)}.ck-crowdy-studio-invoke{display:grid;grid-template-columns:180px 1fr auto;gap:6px}.ck-crowdy-studio-invoke textarea{min-height:70px;background:#0f172a;color:var(--ck-text);border:1px solid var(--ck-line)}.ck-crowdy-studio-empty{color:var(--ck-muted);padding:8px}
|
|
13
|
-
|
|
13
|
+
.ck-crowdy-studio[data-agent=true]{grid-template-columns:minmax(0,1fr) minmax(300px,380px)}.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-toolbar,.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-new,.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-main,.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-bottom{grid-column:1}.ck-crowdy-studio-agent-dock{grid-column:2;grid-row:1/-1;display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0;padding:10px;border-left:1px solid var(--ck-line);background:#0b1220;overflow:auto}.ck-crowdy-studio-agent-dock header{display:flex;align-items:center;justify-content:space-between;gap:8px}.ck-crowdy-studio-agent-dock h2,.ck-crowdy-studio-agent-dock h3{margin:0;font-size:13px}.ck-crowdy-studio-agent-status,.ck-crowdy-studio-agent-budget,.ck-crowdy-studio-agent-lease{color:var(--ck-muted);font-size:12px}.ck-crowdy-studio-agent-modes,.ck-crowdy-studio-agent-controls{display:flex;gap:5px;flex-wrap:wrap}.ck-crowdy-studio-agent-modes button[data-active=true]{border-color:var(--ck-accent);color:#bae6fd}.ck-crowdy-studio-agent-stop{border-color:#ef4444!important;color:#fecaca!important}.ck-crowdy-studio-agent-lease-controls{display:flex;gap:6px;flex-wrap:wrap;margin:0;padding:7px;border:1px solid var(--ck-line)}.ck-crowdy-studio-agent-lease-controls legend{color:var(--ck-muted)}.ck-crowdy-studio-agent-lease-controls label{display:flex;gap:3px;align-items:center}.ck-crowdy-studio-agent-messages{display:flex;flex-direction:column;gap:6px;min-height:90px;max-height:260px;overflow:auto}.ck-crowdy-studio-agent-message,.ck-crowdy-studio-agent-stream,.ck-crowdy-studio-agent-approval,.ck-crowdy-studio-agent-diff,.ck-crowdy-studio-agent-checkpoint{padding:7px;border:1px solid var(--ck-line);border-radius:5px;background:var(--ck-panel)}.ck-crowdy-studio-agent-message[data-role=USER]{border-color:#155e75}.ck-crowdy-studio-agent-message p,.ck-crowdy-studio-agent-approval p,.ck-crowdy-studio-agent-diff p,.ck-crowdy-studio-agent-checkpoint p{margin:3px 0;white-space:pre-wrap;overflow-wrap:anywhere}.ck-crowdy-studio-agent-timeline{display:grid;gap:5px;margin:0;padding-left:22px;max-height:190px;overflow:auto}.ck-crowdy-studio-agent-timeline li{padding:4px;border-bottom:1px solid #243247}.ck-crowdy-studio-agent-timeline li>span{margin-left:6px;color:var(--ck-muted)}.ck-crowdy-studio-agent-approvals,.ck-crowdy-studio-agent-checkpoints{display:grid;gap:7px}.ck-crowdy-studio-agent-approval{border-color:#f59e0b}.ck-crowdy-studio-agent-approval code{display:block;overflow-wrap:anywhere;color:#fde68a}.ck-crowdy-studio-agent-approval>div{display:flex;gap:6px}.ck-crowdy-studio-agent-composer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:auto}.ck-crowdy-studio-agent-composer textarea{min-height:62px;resize:vertical;background:#0f172a;color:var(--ck-text);border:1px solid var(--ck-line);padding:7px}.ck-crowdy-studio :focus-visible{outline:2px solid var(--ck-accent);outline-offset:2px}
|
|
14
|
+
@container(max-width:900px){.ck-crowdy-studio-main{grid-template-columns:180px minmax(0,1fr)}.ck-crowdy-studio-settings{display:none}}@container(max-width:620px){.ck-crowdy-studio-main{grid-template-columns:1fr}.ck-crowdy-studio-explorer{display:none}}
|
|
15
|
+
@container(max-width:760px){.ck-crowdy-studio[data-agent=true]{grid-template-columns:1fr;grid-template-rows:auto auto minmax(240px,1fr) minmax(120px,.36fr) minmax(300px,.7fr);overflow:auto}.ck-crowdy-studio[data-agent=true]>.ck-crowdy-studio-agent-dock{grid-column:1;grid-row:5;border-left:0;border-top:1px solid var(--ck-line)}}
|
|
14
16
|
`;
|