@playcraft/cli 0.1.81 → 0.1.82

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.
@@ -10,7 +10,6 @@ export function getCliTopicsHelpText() {
10
10
  ' Remix 参考 references list/search/import(发现参考并读取当前工程中的固定快照)',
11
11
  ' references prepare-starter-template(准备默认起始模板)',
12
12
  ' 视频理解 video models | video understand | video jobs get/cancel',
13
- ' APK 分析 apk analyze --attachment <引用文件> | apk analyze --resume <runId> | apk jobs get/cancel',
14
13
  ' 平台 build, build-base, build-playable, build-all, analyze, inspect, upgrade',
15
14
  ' tools 除 generate-* 外(Git / 沙箱构建 / 发布 / 列表 / Prefab 等,需后端 API)',
16
15
  ' 沙箱常驻 workspace-runtime serve(Cloud Workspace,由 Runtime 引导配置启动)',
@@ -52,8 +52,9 @@ function shared(command) {
52
52
  .option('--workspace <id>', t('workspace'))
53
53
  .option('--timeout <seconds>', t('timeout'));
54
54
  }
55
+ /** Hidden until DevRun is reachable from the platform clusters; the command still works when called directly. */
55
56
  export function registerApkCommands(program) {
56
- const apk = program.command('apk').description(t('topic'));
57
+ const apk = program.command('apk', { hidden: true }).description(t('topic'));
57
58
  shared(apk.command('analyze').description(t('analyze')))
58
59
  .option('--attachment <path>', t('attachment'))
59
60
  .option('--out <directory>', t('out'))
@@ -94,29 +94,9 @@ export class WorkspaceModelBroker {
94
94
  activate: (readOnly = false) => {
95
95
  if (!this.valid(entry) || this.routes.get(routeKey) !== route)
96
96
  throw new Error('model_access_denied');
97
- const priorFeedback = route.selected?.feedback;
98
- let refsBlocked = Boolean(entry.refsBlocked || priorFeedback?.refsBlocked && priorFeedback.clientRequestId === clientRequestId);
99
- if (sessionId && clientRequestId) {
100
- const overlaps = (this.state.journal.listOperations?.() ?? []).some(({ operation }) => ['session.turn', 'session.review', 'session.compact'].includes(operation.kind)
101
- && ['dispatched', 'accepted', 'uncertain'].includes(operation.status)
102
- && operation.generation === this.state.config.generation && operation.runtimeEpoch === this.state.runtimeEpoch
103
- && (operation.sessionId !== sessionId || operation.clientRequestId !== clientRequestId));
104
- if (overlaps) {
105
- refsBlocked = true;
106
- // A completed overlapping turn may leave shells alive. Only a later turn gets a new safe boundary.
107
- for (const prepared of this.entries.values()) {
108
- if (prepared.epoch === this.state.runtimeEpoch)
109
- prepared.refsBlocked = true;
110
- }
111
- for (const existing of this.routes.values()) {
112
- if (existing.epoch === this.state.runtimeEpoch && existing.selected?.feedback)
113
- existing.selected.feedback.refsBlocked = true;
114
- }
115
- }
116
- }
117
97
  route.lastAdmissionReason = undefined;
118
98
  route.selected = { entry, model: credential.model,
119
- ...(sessionId && clientRequestId ? { feedback: { sessionId, clientRequestId, cwd, boundaryId, readOnly, refsBlocked,
99
+ ...(sessionId && clientRequestId ? { feedback: { sessionId, clientRequestId, cwd, boundaryId, readOnly,
120
100
  ...(originCwd ? { originCwd } : {}) } } : {}) };
121
101
  },
122
102
  model: credential.model,
@@ -43,11 +43,12 @@ export class WorkspaceRemixReferencesBroker {
43
43
  .map((item) => item.operation)
44
44
  .filter((operation) => ['session.turn', 'session.review', 'session.compact'].includes(operation.kind) &&
45
45
  ACTIVE.has(operation.status) &&
46
+ operation.sessionId === context.sessionId &&
47
+ operation.clientRequestId === context.clientRequestId &&
46
48
  operation.generation === state.config.generation &&
47
49
  operation.runtimeEpoch === state.runtimeEpoch);
48
50
  const operation = operations.length === 1 ? operations[0] : undefined;
49
51
  if (!valid() ||
50
- context.refsBlocked ||
51
52
  state.journal.destroyed() ||
52
53
  !operation ||
53
54
  operation.kind !== 'session.turn' ||
@@ -24,7 +24,7 @@ export class WorkspaceSkillDiscoveryBroker {
24
24
  && operation.generation === state.config.generation && operation.runtimeEpoch === state.runtimeEpoch
25
25
  && ['dispatched', 'accepted'].includes(operation.status));
26
26
  const operation = operations.length === 1 ? operations[0] : undefined;
27
- if (!valid() || context.refsBlocked || state.journal.destroyed() || !operation?.workspaceId || !operation.directoryName
27
+ if (!valid() || state.journal.destroyed() || !operation?.workspaceId || !operation.directoryName
28
28
  || operation.directoryName === 'root' || !operation.nativeThreadId || !operation.nativeTurnId
29
29
  || !session || session.threadId !== operation.nativeThreadId || session.activeTurnId !== operation.nativeTurnId
30
30
  || session.cwd !== context.cwd || session.workspaceId !== operation.workspaceId
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playcraft/cli",
3
- "version": "0.1.81",
3
+ "version": "0.1.82",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "engines": {
@@ -57,8 +57,8 @@
57
57
  "@gltf-transform/core": "^4.3.0",
58
58
  "@gltf-transform/extensions": "^4.3.0",
59
59
  "@gltf-transform/functions": "^4.3.0",
60
- "@playcraft/build": "0.1.81",
61
- "@playcraft/common": "0.1.81",
60
+ "@playcraft/build": "0.1.82",
61
+ "@playcraft/common": "0.1.82",
62
62
  "better-sqlite3-pinned": "npm:better-sqlite3@13.0.3",
63
63
  "chokidar": "^4.0.3",
64
64
  "commander": "^13.1.0",
@@ -106,13 +106,6 @@
106
106
  "surface": "sandbox-agent",
107
107
  "mountPath": ".playcraft/skills/remix__playcraft-adsdk"
108
108
  },
109
- {
110
- "skillRef": "remix/playcraft-apk-replication",
111
- "version": "1.1.0",
112
- "artifactHash": "a7c16b036e4cbce07c5c03d1b4e98a4d42312e997a1ea0ad3ceb2d1e85ecebb9",
113
- "surface": "sandbox-agent",
114
- "mountPath": ".playcraft/skills/remix__playcraft-apk-replication"
115
- },
116
109
  {
117
110
  "skillRef": "remix/playcraft-audio-generation",
118
111
  "version": "1.4.0",