@assethub/cli 0.1.15 → 0.1.17

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/README.md CHANGED
@@ -141,7 +141,7 @@ Existing parts commands use the same canvas and durable operation storage:
141
141
  assethub parts split --source-id "$IMAGE_ASSET_ID" --canvas "$CANVAS_ID" --part-extractor V1.5 --wait
142
142
  # Select only the parts to execute; --all-ready selects all ready tasks.
143
143
  assethub parts split --source-id "$IMAGE_ASSET_ID" --canvas "$CANVAS_ID" --part-extractor V1.5 --all-ready --wait
144
- # Internal V3.6.1 runs the complete graph split through one analyze receipt.
144
+ # Internal V3.6.1, V3.6.3 and V3.6.4 run the complete graph split through one analyze receipt.
145
145
  assethub production agents
146
146
  assethub parts split --source-id "$IMAGE_ASSET_ID" --canvas "$CANVAS_ID" --part-extractor V3.6.1 --all-ready --wait
147
147
  assethub production automation --canvas "$CANVAS_ID" --input-json @batch.json --wait
@@ -149,7 +149,9 @@ assethub production automation --canvas "$CANVAS_ID" --input-json @batch.json --
149
149
 
150
150
  `parts split` keeps separate analysis and selected-part execution phases. Each phase
151
151
  has its own saved operation ID, with the execution linked to the analysis run.
152
- For Internal `V3.6.1` (`V3.6.1 Primary Images First`), analysis runs the complete
152
+ For Internal `V3.6.1` (`V3.6.1 Primary Images First`) and `V3.6.3`
153
+ (`V3.6.3 Fast Analysis`, CLI 0.1.16+), and `V3.6.4`
154
+ (`V3.6.4 Fast Analysis`, CLI 0.1.17+), analysis runs the complete
153
155
  Artifact Graph split. `--all-ready` waits for that one receipt and does not start a
154
156
  second production execution. Resume an interrupted graph split with
155
157
  `runs resume <operation-id>`; `--task-id`, `--mission-id`,
@@ -419,8 +421,12 @@ Image generation uses the `v2` endpoint with mandatory canvas history.
419
421
  `--api-version v1` is rejected; run `assethub capabilities` to check availability.
420
422
 
421
423
  Part extraction uses the same names shown in the AssetHub product: `V1.5`,
422
- `V2.0 alpha`, `V2.1 alpha`, and the Internal-only `V3.6.1` alias for
423
- `V3.6.1 Primary Images First`. Retired names are no longer accepted by the CLI.
424
+ `V2.0 alpha`, `V2.1 alpha`, and the Internal-only aliases `V3.6.1`
425
+ (`V3.6.1 Primary Images First`), `V3.6.3` (`V3.6.3 Fast Analysis`),
426
+ and `V3.6.4` (`V3.6.4 Fast Analysis`).
427
+ Run `production agents` to check availability and `supportedOnGraphEndpoint`
428
+ before selecting a graph version. These aliases do not change the default.
429
+ Retired names are no longer accepted by the CLI.
424
430
  Internal agent IDs are intentionally not part of the CLI interface.
425
431
 
426
432
  The CLI only uses AssetHub's public API surface and is designed so this package
@@ -464,6 +470,13 @@ and each mode's `--max-rounds` policy come from `composer refine --list-modes`.
464
470
  Incomplete native results remain `needs_review` and return exit code 3, so inspect
465
471
  the execution and its new geometry asset IDs before continuing.
466
472
 
473
+ Native refinement `completed` or `reviewed` means execution finished; it is not
474
+ creator approval. Read `execution.refinement.report` and inspect the actual
475
+ `execution.composition` and downloaded meshes. Structured unresolved issues or
476
+ incomplete refinement can return `needs_review` (exit 3). Review narrative issues
477
+ even on completed runs, using overlays and oblique/side views before claiming
478
+ visual improvement.
479
+
467
480
  Existing Production outputs can be inspected and downloaded without regenerating:
468
481
 
469
482
  ```sh
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAsBA,OAAO,EAIL,KAAK,wBAAwB,EAO7B,KAAK,YAAY,EAEjB,KAAK,UAAU,EAgBhB,MAAM,sBAAsB,CAAA;AAa7B,OAAO,EAAC,kBAAkB,EAAc,MAAM,gCAAgC,CAAA;AAI9E,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAA;AA8HxD,eAAO,MAAM,KAAK,4zZA4HjB,CAAA;AAq1ED;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,GACxC,OAAO,KAAK,KACX,wBA0BF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,KAAK,KACX,IAAI,CAAC,UAAU,EAAE,QAAQ,CAM1B,CAAA;AA6fF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,SAAS,MAAM,EAAE,KACtB,YAAY,EAuGd,CAAA;AAkqCD,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,GAAG,SAAS,EAC9B,aAAa,MAAM,EAAE,EACrB,OAAO,KAAK,KACX,cAoBF,CAAA;AAED,KAAK,iBAAiB,GAAG,IAAI,CAC3B,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,EAC5C,SAAS,GACT,UAAU,GACV,KAAK,GACL,WAAW,GACX,QAAQ,GACR,OAAO,GACP,OAAO,GACP,UAAU,CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,MAAM,iBAAiB;;;;;;;;;;;;;;CAUvB,CAAA;AAEF,eAAO,MAAM,sBAAsB,GACjC,SAAS,UAAU,CAAC,OAAO,iBAAiB,CAAC,EAC7C,MAAM,iBAAiB,EACvB,SAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAYf,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAsBA,OAAO,EAIL,KAAK,wBAAwB,EAO7B,KAAK,YAAY,EAEjB,KAAK,UAAU,EAgBhB,MAAM,sBAAsB,CAAA;AAa7B,OAAO,EAAC,kBAAkB,EAAc,MAAM,gCAAgC,CAAA;AAI9E,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAA;AA4IxD,eAAO,MAAM,KAAK,4zZA4HjB,CAAA;AAq1ED;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,GACxC,OAAO,KAAK,KACX,wBA0BF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAChC,OAAO,KAAK,KACX,IAAI,CAAC,UAAU,EAAE,QAAQ,CAM1B,CAAA;AA6fF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,SAAS,MAAM,EAAE,KACtB,YAAY,EAuGd,CAAA;AAwqCD,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,GAAG,SAAS,EAC9B,aAAa,MAAM,EAAE,EACrB,OAAO,KAAK,KACX,cAoBF,CAAA;AAED,KAAK,iBAAiB,GAAG,IAAI,CAC3B,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,EAC5C,SAAS,GACT,UAAU,GACV,KAAK,GACL,WAAW,GACX,QAAQ,GACR,OAAO,GACP,OAAO,GACP,UAAU,CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,MAAM,iBAAiB;;;;;;;;;;;;;;CAUvB,CAAA;AAEF,eAAO,MAAM,sBAAsB,GACjC,SAAS,UAAU,CAAC,OAAO,iBAAiB,CAAC,EAC7C,MAAM,iBAAiB,EACvB,SAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAYf,CAAA"}
package/dist/index.js CHANGED
@@ -28,7 +28,11 @@ const defaultImageModelId = 'imageGen.nanoBanana2.openrouter';
28
28
  const defaultMeshModelId = 'meshGen.hunyuan31';
29
29
  const defaultProfileName = 'default';
30
30
  const defaultPartExtractorName = 'V1.5';
31
- const artifactGraphPartExtractorApiValue = 'ah_agent_graph_v3_6_1';
31
+ const artifactGraphPartExtractorApiValues = new Set([
32
+ 'ah_agent_graph_v3_6_1',
33
+ 'ah_agent_graph_v3_6_3',
34
+ 'ah_agent_graph_v3_6_4',
35
+ ]);
32
36
  const partExtractorOptions = [
33
37
  {
34
38
  publicName: 'V1.5',
@@ -47,9 +51,19 @@ const partExtractorOptions = [
47
51
  },
48
52
  {
49
53
  publicName: 'V3.6.1',
50
- apiValue: artifactGraphPartExtractorApiValue,
54
+ apiValue: 'ah_agent_graph_v3_6_1',
51
55
  aliases: ['v3.6.1', '3.6.1', 'v3.6.1 primary images first'],
52
56
  },
57
+ {
58
+ publicName: 'V3.6.3 Fast Analysis',
59
+ apiValue: 'ah_agent_graph_v3_6_3',
60
+ aliases: ['v3.6.3', '3.6.3'],
61
+ },
62
+ {
63
+ publicName: 'V3.6.4 Fast Analysis',
64
+ apiValue: 'ah_agent_graph_v3_6_4',
65
+ aliases: ['v3.6.4', '3.6.4'],
66
+ },
53
67
  ];
54
68
  const partExtractorPublicNames = partExtractorOptions
55
69
  .map(option => option.publicName)
@@ -2746,7 +2760,7 @@ const isArtifactGraphPartSplit = (value, execution) => (value != null &&
2746
2760
  typeof value === 'object' &&
2747
2761
  'engine' in value &&
2748
2762
  value.engine === 'artifact-graph') ||
2749
- execution.resolvedInput?.agentVersion === artifactGraphPartExtractorApiValue;
2763
+ artifactGraphPartExtractorApiValues.has(String(execution.resolvedInput?.agentVersion));
2750
2764
  const commandParts = async (subcommand, ctx) => {
2751
2765
  const runPartSplit = async (source, operationId = getFlag(ctx.flags, 'operation-id') ?? randomUUID()) => {
2752
2766
  let orderId = source == null ? getFlag(ctx.flags, 'order-id') : undefined;
@@ -2757,13 +2771,15 @@ const commandParts = async (subcommand, ctx) => {
2757
2771
  const requestedAgentVersion = orderId == null || partExtractorFlag != null
2758
2772
  ? resolvePartExtractorApiValue(partExtractorFlag ?? defaultPartExtractorName)
2759
2773
  : undefined;
2760
- if (requestedAgentVersion === artifactGraphPartExtractorApiValue) {
2774
+ if (requestedAgentVersion != null &&
2775
+ artifactGraphPartExtractorApiValues.has(requestedAgentVersion)) {
2776
+ const publicName = publicPartExtractorName(requestedAgentVersion);
2761
2777
  for (const flag of ['task-id', 'mission-id', 'part-extraction-mode']) {
2762
2778
  if (hasFlag(ctx.flags, flag))
2763
- throw new Error(`--${flag} is not supported with V3.6.1`);
2779
+ throw new Error(`--${flag} is not supported with ${publicName}`);
2764
2780
  }
2765
2781
  if (orderId != null)
2766
- throw new Error('--order-id is not supported with V3.6.1; use runs resume <operation-id> to resume a graph split');
2782
+ throw new Error(`--order-id is not supported with ${publicName}; use runs resume <operation-id> to resume a graph split`);
2767
2783
  }
2768
2784
  const session = await productionSession(ctx, orderId == null ? 'production.analyze' : 'production.execute');
2769
2785
  let execution;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assethub/cli",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "description": "Command line interface for AssetHub.",
5
5
  "type": "module",
6
6
  "bin": {