@inf-monkeys-tech/monkeys-cli 0.10.6 → 0.11.1

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.
Files changed (94) hide show
  1. package/README.md +0 -4
  2. package/dist/agent-work/adapters.d.ts +2 -1
  3. package/dist/agent-work/adapters.d.ts.map +1 -1
  4. package/dist/agent-work/adapters.js +111 -18
  5. package/dist/agent-work/adapters.js.map +1 -1
  6. package/dist/agent-work/client.d.ts +3 -2
  7. package/dist/agent-work/client.d.ts.map +1 -1
  8. package/dist/agent-work/client.js +13 -3
  9. package/dist/agent-work/client.js.map +1 -1
  10. package/dist/agent-work/contracts.d.ts +54 -2
  11. package/dist/agent-work/contracts.d.ts.map +1 -1
  12. package/dist/agent-work/contracts.js +31 -1
  13. package/dist/agent-work/contracts.js.map +1 -1
  14. package/dist/agent-work/polling.d.ts.map +1 -1
  15. package/dist/agent-work/polling.js +2 -2
  16. package/dist/agent-work/polling.js.map +1 -1
  17. package/dist/command-support/asset-feature-backfill.d.ts +20 -4
  18. package/dist/command-support/asset-feature-backfill.d.ts.map +1 -1
  19. package/dist/commands/agent/work/list.d.ts +1 -0
  20. package/dist/commands/agent/work/list.d.ts.map +1 -1
  21. package/dist/commands/agent/work/list.js +3 -1
  22. package/dist/commands/agent/work/list.js.map +1 -1
  23. package/dist/commands/data/asset/list.d.ts.map +1 -1
  24. package/dist/commands/data/asset/list.js +9 -5
  25. package/dist/commands/data/asset/list.js.map +1 -1
  26. package/dist/commands/data/asset/search.d.ts.map +1 -1
  27. package/dist/commands/data/asset/search.js +9 -5
  28. package/dist/commands/data/asset/search.js.map +1 -1
  29. package/dist/commands/data/view/rows.d.ts.map +1 -1
  30. package/dist/commands/data/view/rows.js +9 -5
  31. package/dist/commands/data/view/rows.js.map +1 -1
  32. package/dist/contracts/version.d.ts +2 -2
  33. package/dist/contracts/version.js +2 -2
  34. package/dist/data/asset-jsonl-import.d.ts +50 -10
  35. package/dist/data/asset-jsonl-import.d.ts.map +1 -1
  36. package/dist/data/asset-jsonl-import.js +13 -2
  37. package/dist/data/asset-jsonl-import.js.map +1 -1
  38. package/dist/data/client.d.ts +21 -3
  39. package/dist/data/client.d.ts.map +1 -1
  40. package/dist/data/client.js +132 -21
  41. package/dist/data/client.js.map +1 -1
  42. package/dist/data/command.d.ts +36 -6
  43. package/dist/data/command.d.ts.map +1 -1
  44. package/dist/data/command.js +81 -15
  45. package/dist/data/command.js.map +1 -1
  46. package/dist/data/contracts.d.ts +1 -0
  47. package/dist/data/contracts.d.ts.map +1 -1
  48. package/dist/data/contracts.js +6 -0
  49. package/dist/data/contracts.js.map +1 -1
  50. package/dist/data/cursor.d.ts +5 -1
  51. package/dist/data/cursor.d.ts.map +1 -1
  52. package/dist/data/cursor.js +12 -6
  53. package/dist/data/cursor.js.map +1 -1
  54. package/dist/data/kernel-bindings.d.ts.map +1 -1
  55. package/dist/data/kernel-bindings.js +1 -0
  56. package/dist/data/kernel-bindings.js.map +1 -1
  57. package/dist/data/ontology-command.d.ts +80 -16
  58. package/dist/data/ontology-command.d.ts.map +1 -1
  59. package/dist/data/perspective.d.ts +10 -5
  60. package/dist/data/perspective.d.ts.map +1 -1
  61. package/dist/data/perspective.js +50 -57
  62. package/dist/data/perspective.js.map +1 -1
  63. package/dist/data/resource-locator.d.ts.map +1 -1
  64. package/dist/data/resource-locator.js +9 -7
  65. package/dist/data/resource-locator.js.map +1 -1
  66. package/dist/data/view-rows.d.ts +1 -1
  67. package/dist/data/view-rows.d.ts.map +1 -1
  68. package/dist/data/view-rows.js +26 -3
  69. package/dist/data/view-rows.js.map +1 -1
  70. package/dist/data-transfer/asset-export.d.ts +10 -2
  71. package/dist/data-transfer/asset-export.d.ts.map +1 -1
  72. package/dist/data-transfer/asset-import.d.ts +10 -2
  73. package/dist/data-transfer/asset-import.d.ts.map +1 -1
  74. package/dist/data-transfer/ontology-export.d.ts +10 -2
  75. package/dist/data-transfer/ontology-export.d.ts.map +1 -1
  76. package/dist/data-transfer/ontology-import.d.ts +10 -2
  77. package/dist/data-transfer/ontology-import.d.ts.map +1 -1
  78. package/dist/openapi/contract.js +1 -1
  79. package/dist/openapi/contract.js.map +1 -1
  80. package/dist/transport/http-client.d.ts.map +1 -1
  81. package/dist/transport/http-client.js +1 -0
  82. package/dist/transport/http-client.js.map +1 -1
  83. package/dist/transport/types.d.ts +1 -0
  84. package/dist/transport/types.d.ts.map +1 -1
  85. package/oclif.manifest.json +68 -59
  86. package/package.json +2 -2
  87. package/skills/monkeys/SKILL.md +3 -3
  88. package/skills/monkeys/references/agent-work.md +6 -3
  89. package/skills/monkeys/references/compatibility.md +3 -3
  90. package/skills/monkeys/references/data-perspective.md +36 -31
  91. package/skills/monkeys/references/data-read.md +19 -7
  92. package/skills/monkeys/references/ontology-feature-search.md +5 -5
  93. package/skills/monkeys/references/ontology-model.md +2 -1
  94. package/skills/monkeys/references/safety-errors.md +1 -1
@@ -3,20 +3,23 @@ import { CliError, EXIT_CODES } from '../errors/cli-error.js';
3
3
  export function dataQueryFingerprint(input) {
4
4
  return createHash('sha256').update(JSON.stringify(input)).digest('hex');
5
5
  }
6
- export function encodeDataCursor(token, fingerprint) {
6
+ export function encodeDataCursor(token, fingerprint, perspective) {
7
7
  if (!token)
8
8
  return undefined;
9
- return Buffer.from(JSON.stringify({ fingerprint, token, v: 1 })).toString('base64url');
9
+ return Buffer.from(JSON.stringify({ fingerprint, ...(perspective ? { perspective } : {}), token, v: 2 })).toString('base64url');
10
10
  }
11
- export function decodeDataCursor(cursor, fingerprint) {
11
+ export function decodeDataCursorState(cursor, fingerprint) {
12
12
  if (!cursor)
13
- return undefined;
13
+ return {};
14
14
  try {
15
15
  const parsed = JSON.parse(Buffer.from(cursor, 'base64url').toString('utf8'));
16
- if (parsed.v !== 1 || !parsed.token || parsed.fingerprint !== fingerprint) {
16
+ if ((parsed.v !== 1 && parsed.v !== 2) || !parsed.token || parsed.fingerprint !== fingerprint) {
17
17
  throw new Error('cursor mismatch');
18
18
  }
19
- return parsed.token;
19
+ if (parsed.perspective !== undefined && parsed.perspective !== 'kernel' && parsed.perspective !== 'studio') {
20
+ throw new Error('cursor perspective mismatch');
21
+ }
22
+ return { ...(parsed.perspective ? { perspective: parsed.perspective } : {}), token: parsed.token };
20
23
  }
21
24
  catch (cause) {
22
25
  throw new CliError('Data Cursor does not match the current Context or query criteria.', {
@@ -26,4 +29,7 @@ export function decodeDataCursor(cursor, fingerprint) {
26
29
  });
27
30
  }
28
31
  }
32
+ export function decodeDataCursor(cursor, fingerprint) {
33
+ return decodeDataCursorState(cursor, fingerprint).token;
34
+ }
29
35
  //# sourceMappingURL=cursor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/data/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAyB,EAAE,WAAmB;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAA0B,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACjH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA0B,EAAE,WAAmB;IAC9E,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAkB,CAAC;QAC9F,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,mEAAmE,EAAE;YACtF,KAAK;YACL,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,UAAU,CAAC,UAAU;SAChC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/data/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAS9D,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAyB,EAAE,WAAmB,EAAE,WAAiC;IAChH,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAA0B,CAAC,CAC9G,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,MAA0B,EAC1B,WAAmB;IAEnB,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAkB,CAAC;QAC9F,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YAC9F,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3G,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACrG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,mEAAmE,EAAE;YACtF,KAAK;YACL,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,UAAU,CAAC,UAAU;SAChC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA0B,EAAE,WAAmB;IAC9E,OAAO,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC;AAC1D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-bindings.d.ts","sourceRoot":"","sources":["../../src/data/kernel-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AA+CD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,iBAAiB,GAAG,SAAS,CAG/H"}
1
+ {"version":3,"file":"kernel-bindings.d.ts","sourceRoot":"","sources":["../../src/data/kernel-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAgDD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,iBAAiB,GAAG,SAAS,CAG/H"}
@@ -5,6 +5,7 @@ const KERNEL_ONTOLOGY_V1_BINDINGS = {
5
5
  'data.asset.list': { method: 'GET', pathTemplate: '/api/kernel/data-v2' },
6
6
  'data.asset.listNextPage': { method: 'GET', pathTemplate: '/api/kernel/data-v2/nextpage' },
7
7
  'data.asset.next': { method: 'GET', pathTemplate: '/api/kernel/data-v2/nextpage' },
8
+ 'data.asset.search': { method: 'POST', pathTemplate: '/api/kernel/data-v2/search/advanced' },
8
9
  'data.asset.update': { method: 'PUT', pathTemplate: '/api/kernel/data-v2/{assetId}' },
9
10
  'data.container.copy': { method: 'POST', pathTemplate: '/api/kernel/data-v2/views/{viewId}/assets/{assetId}/copy' },
10
11
  'data.container.move': { method: 'PUT', pathTemplate: '/api/kernel/data-v2/views/{viewId}/assets/{assetId}' },
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-bindings.js","sourceRoot":"","sources":["../../src/data/kernel-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel-bindings.js","sourceRoot":"","sources":["../../src/data/kernel-bindings.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,16 @@ export declare function listOntologies(options: BaseOptions & {
18
18
  effectiveTeamId?: string;
19
19
  resourceLocator?: import("./resource-locator-types.js").DataResourceLocator;
20
20
  effectivePerspective?: "kernel" | "studio";
21
- perspectiveSource: "fixed-route" | "legacy-unverified" | "session-scope";
22
- requestedPerspective: string;
21
+ perspectiveResolution?: {
22
+ attempts: Array<{
23
+ outcome: 'empty' | 'not_found' | 'success';
24
+ perspective: 'kernel' | 'studio';
25
+ }>;
26
+ fallbackReason?: 'studio_empty' | 'studio_not_found';
27
+ policy: 'explicit' | 'fixed-route' | 'studio-first';
28
+ };
29
+ perspectiveSource: "explicit" | "fixed-route" | "studio-first";
30
+ requestedPerspective: import("./perspective.js").DataPerspectiveRequest;
23
31
  schemaFresh: boolean;
24
32
  schemaSource: string;
25
33
  teamMode: import("./command.js").DataTeamMode;
@@ -47,8 +55,16 @@ export declare function listOntologies(options: BaseOptions & {
47
55
  effectiveTeamId?: string;
48
56
  resourceLocator?: import("./resource-locator-types.js").DataResourceLocator;
49
57
  effectivePerspective?: "kernel" | "studio";
50
- perspectiveSource: "fixed-route" | "legacy-unverified" | "session-scope";
51
- requestedPerspective: string;
58
+ perspectiveResolution?: {
59
+ attempts: Array<{
60
+ outcome: 'empty' | 'not_found' | 'success';
61
+ perspective: 'kernel' | 'studio';
62
+ }>;
63
+ fallbackReason?: 'studio_empty' | 'studio_not_found';
64
+ policy: 'explicit' | 'fixed-route' | 'studio-first';
65
+ };
66
+ perspectiveSource: "explicit" | "fixed-route" | "studio-first";
67
+ requestedPerspective: import("./perspective.js").DataPerspectiveRequest;
52
68
  schemaFresh: boolean;
53
69
  schemaSource: string;
54
70
  teamMode: import("./command.js").DataTeamMode;
@@ -69,8 +85,16 @@ export declare function getOntology(options: BaseOptions & {
69
85
  effectiveTeamId?: string;
70
86
  resourceLocator?: import("./resource-locator-types.js").DataResourceLocator;
71
87
  effectivePerspective?: "kernel" | "studio";
72
- perspectiveSource: "fixed-route" | "legacy-unverified" | "session-scope";
73
- requestedPerspective: string;
88
+ perspectiveResolution?: {
89
+ attempts: Array<{
90
+ outcome: 'empty' | 'not_found' | 'success';
91
+ perspective: 'kernel' | 'studio';
92
+ }>;
93
+ fallbackReason?: 'studio_empty' | 'studio_not_found';
94
+ policy: 'explicit' | 'fixed-route' | 'studio-first';
95
+ };
96
+ perspectiveSource: "explicit" | "fixed-route" | "studio-first";
97
+ requestedPerspective: import("./perspective.js").DataPerspectiveRequest;
74
98
  schemaFresh: boolean;
75
99
  schemaSource: string;
76
100
  teamMode: import("./command.js").DataTeamMode;
@@ -97,8 +121,16 @@ export declare function getOntology(options: BaseOptions & {
97
121
  effectiveTeamId?: string;
98
122
  resourceLocator?: import("./resource-locator-types.js").DataResourceLocator;
99
123
  effectivePerspective?: "kernel" | "studio";
100
- perspectiveSource: "fixed-route" | "legacy-unverified" | "session-scope";
101
- requestedPerspective: string;
124
+ perspectiveResolution?: {
125
+ attempts: Array<{
126
+ outcome: 'empty' | 'not_found' | 'success';
127
+ perspective: 'kernel' | 'studio';
128
+ }>;
129
+ fallbackReason?: 'studio_empty' | 'studio_not_found';
130
+ policy: 'explicit' | 'fixed-route' | 'studio-first';
131
+ };
132
+ perspectiveSource: "explicit" | "fixed-route" | "studio-first";
133
+ requestedPerspective: import("./perspective.js").DataPerspectiveRequest;
102
134
  schemaFresh: boolean;
103
135
  schemaSource: string;
104
136
  teamMode: import("./command.js").DataTeamMode;
@@ -118,8 +150,16 @@ export declare function createOntology(options: BaseOptions & {
118
150
  effectiveTeamId?: string;
119
151
  resourceLocator?: import("./resource-locator-types.js").DataResourceLocator;
120
152
  effectivePerspective?: "kernel" | "studio";
121
- perspectiveSource: "fixed-route" | "legacy-unverified" | "session-scope";
122
- requestedPerspective: string;
153
+ perspectiveResolution?: {
154
+ attempts: Array<{
155
+ outcome: 'empty' | 'not_found' | 'success';
156
+ perspective: 'kernel' | 'studio';
157
+ }>;
158
+ fallbackReason?: 'studio_empty' | 'studio_not_found';
159
+ policy: 'explicit' | 'fixed-route' | 'studio-first';
160
+ };
161
+ perspectiveSource: "explicit" | "fixed-route" | "studio-first";
162
+ requestedPerspective: import("./perspective.js").DataPerspectiveRequest;
123
163
  schemaFresh: boolean;
124
164
  schemaSource: string;
125
165
  teamMode: import("./command.js").DataTeamMode;
@@ -147,8 +187,16 @@ export declare function createOntology(options: BaseOptions & {
147
187
  effectiveTeamId?: string;
148
188
  resourceLocator?: import("./resource-locator-types.js").DataResourceLocator;
149
189
  effectivePerspective?: "kernel" | "studio";
150
- perspectiveSource: "fixed-route" | "legacy-unverified" | "session-scope";
151
- requestedPerspective: string;
190
+ perspectiveResolution?: {
191
+ attempts: Array<{
192
+ outcome: 'empty' | 'not_found' | 'success';
193
+ perspective: 'kernel' | 'studio';
194
+ }>;
195
+ fallbackReason?: 'studio_empty' | 'studio_not_found';
196
+ policy: 'explicit' | 'fixed-route' | 'studio-first';
197
+ };
198
+ perspectiveSource: "explicit" | "fixed-route" | "studio-first";
199
+ requestedPerspective: import("./perspective.js").DataPerspectiveRequest;
152
200
  schemaFresh: boolean;
153
201
  schemaSource: string;
154
202
  teamMode: import("./command.js").DataTeamMode;
@@ -170,8 +218,16 @@ export declare function updateOntology(options: BaseOptions & {
170
218
  effectiveTeamId?: string;
171
219
  resourceLocator?: import("./resource-locator-types.js").DataResourceLocator;
172
220
  effectivePerspective?: "kernel" | "studio";
173
- perspectiveSource: "fixed-route" | "legacy-unverified" | "session-scope";
174
- requestedPerspective: string;
221
+ perspectiveResolution?: {
222
+ attempts: Array<{
223
+ outcome: 'empty' | 'not_found' | 'success';
224
+ perspective: 'kernel' | 'studio';
225
+ }>;
226
+ fallbackReason?: 'studio_empty' | 'studio_not_found';
227
+ policy: 'explicit' | 'fixed-route' | 'studio-first';
228
+ };
229
+ perspectiveSource: "explicit" | "fixed-route" | "studio-first";
230
+ requestedPerspective: import("./perspective.js").DataPerspectiveRequest;
175
231
  schemaFresh: boolean;
176
232
  schemaSource: string;
177
233
  teamMode: import("./command.js").DataTeamMode;
@@ -200,8 +256,16 @@ export declare function updateOntology(options: BaseOptions & {
200
256
  effectiveTeamId?: string;
201
257
  resourceLocator?: import("./resource-locator-types.js").DataResourceLocator;
202
258
  effectivePerspective?: "kernel" | "studio";
203
- perspectiveSource: "fixed-route" | "legacy-unverified" | "session-scope";
204
- requestedPerspective: string;
259
+ perspectiveResolution?: {
260
+ attempts: Array<{
261
+ outcome: 'empty' | 'not_found' | 'success';
262
+ perspective: 'kernel' | 'studio';
263
+ }>;
264
+ fallbackReason?: 'studio_empty' | 'studio_not_found';
265
+ policy: 'explicit' | 'fixed-route' | 'studio-first';
266
+ };
267
+ perspectiveSource: "explicit" | "fixed-route" | "studio-first";
268
+ requestedPerspective: import("./perspective.js").DataPerspectiveRequest;
205
269
  schemaFresh: boolean;
206
270
  schemaSource: string;
207
271
  teamMode: import("./command.js").DataTeamMode;
@@ -1 +1 @@
1
- {"version":3,"file":"ontology-command.d.ts","sourceRoot":"","sources":["../../src/data/ontology-command.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAMD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,SAAS,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;QAH9E,OAAO;QAAiB,WAAW;QAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBvG;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;QAtBhC,OAAO;QAAiB,WAAW;QAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCvG;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE;;;;;;;;;;;;;;;;;QAvCvD,OAAO;QAAiB,WAAW;QAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDvG;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE;;;;;;;;;;;;;;;;;QAvDnE,OAAO;QAAiB,WAAW;QAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EvG"}
1
+ {"version":3,"file":"ontology-command.d.ts","sourceRoot":"","sources":["../../src/data/ontology-command.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAMD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,WAAW,GAAG,SAAS,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAH9E,OAAO;QAAiB,WAAW;QAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBvG;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;QAtBhC,OAAO;QAAiB,WAAW;QAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCvG;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;QAvCvD,OAAO;QAAiB,WAAW;QAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDvG;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;QAvDnE,OAAO;QAAiB,WAAW;QAAmB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EvG"}
@@ -1,15 +1,20 @@
1
1
  import type { HttpClient } from '../transport/http-client.js';
2
2
  export type DataPerspective = 'kernel' | 'studio';
3
+ export type DataPerspectiveRequest = DataPerspective | 'auto';
3
4
  export type DataPerspectiveRoute = 'kernel' | 'session' | 'studio';
4
- export type DataPerspectiveSource = 'fixed-route' | 'legacy-unverified' | 'session-scope';
5
+ export type DataPerspectiveSource = 'explicit' | 'fixed-route' | 'studio-first';
6
+ export interface DataSessionSurfaces {
7
+ kernel: boolean;
8
+ studio: boolean;
9
+ }
5
10
  export declare const dataPerspectiveFlags: {
6
11
  perspective: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
12
  };
8
13
  export declare function parseDataPerspective(value?: string): DataPerspective | undefined;
9
- export declare function dataPerspectiveFingerprint(baseFingerprint: string, perspective?: DataPerspective): string;
10
- export declare function resolveSessionDataPerspective(client: HttpClient, requested?: DataPerspective): Promise<DataPerspective | undefined>;
11
- export declare function resolveOperationDataPerspective(requested: DataPerspective | undefined, sessionPerspective: DataPerspective | undefined, operation: string, availablePerspectives: DataPerspective[], route?: DataPerspectiveRoute): {
12
- effectivePerspective?: DataPerspective;
14
+ export declare function dataPerspectiveFingerprint(baseFingerprint: string, perspective: DataPerspectiveRequest): string;
15
+ export declare function resolveSessionDataSurfaces(client: HttpClient, requested: DataPerspectiveRequest): Promise<DataSessionSurfaces>;
16
+ export declare function resolveOperationDataPerspective(requested: DataPerspectiveRequest, sessionSurfaces: DataSessionSurfaces, operation: string, availablePerspectives: DataPerspective[], route?: DataPerspectiveRoute): {
17
+ effectivePerspective: DataPerspective;
13
18
  perspectiveSource: DataPerspectiveSource;
14
19
  };
15
20
  //# sourceMappingURL=perspective.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"perspective.d.ts","sourceRoot":"","sources":["../../src/data/perspective.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnE,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,mBAAmB,GAAG,eAAe,CAAC;AAkB1F,eAAO,MAAM,oBAAoB;IAC/B,WAAW;CAIZ,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAQhF;AAED,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,eAAe,GAAG,MAAM,CAGzG;AAED,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAuBzI;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,eAAe,GAAG,SAAS,EACtC,kBAAkB,EAAE,eAAe,GAAG,SAAS,EAC/C,SAAS,EAAE,MAAM,EACjB,qBAAqB,EAAE,eAAe,EAAE,EACxC,KAAK,GAAE,oBAAgC,GACtC;IAAE,oBAAoB,CAAC,EAAE,eAAe,CAAC;IAAC,iBAAiB,EAAE,qBAAqB,CAAA;CAAE,CAwDtF"}
1
+ {"version":3,"file":"perspective.d.ts","sourceRoot":"","sources":["../../src/data/perspective.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAAG,MAAM,CAAC;AAC9D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,CAAC;AAChF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAmBD,eAAO,MAAM,oBAAoB;IAC/B,WAAW;CAIZ,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAQhF;AAED,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,GAAG,MAAM,CAE/G;AAMD,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA6BpI;AAED,wBAAgB,+BAA+B,CAC7C,SAAS,EAAE,sBAAsB,EACjC,eAAe,EAAE,mBAAmB,EACpC,SAAS,EAAE,MAAM,EACjB,qBAAqB,EAAE,eAAe,EAAE,EACxC,KAAK,GAAE,oBAAgC,GACtC;IAAE,oBAAoB,EAAE,eAAe,CAAC;IAAC,iBAAiB,EAAE,qBAAqB,CAAA;CAAE,CAuCrF"}
@@ -13,6 +13,7 @@ const sessionSurfaceSchema = z
13
13
  surfaces: z
14
14
  .object({
15
15
  kernel: z.boolean(),
16
+ studio: z.boolean(),
16
17
  })
17
18
  .passthrough(),
18
19
  })
@@ -20,7 +21,7 @@ const sessionSurfaceSchema = z
20
21
  export const dataPerspectiveFlags = {
21
22
  perspective: Flags.string({
22
23
  options: ['kernel', 'studio'],
23
- summary: 'Asserts the Data perspective; does not change Session permissions or server-side routing',
24
+ summary: 'Use only this Data perspective; when omitted, read queries use Studio first and may fall back to Kernel',
24
25
  }),
25
26
  };
26
27
  export function parseDataPerspective(value) {
@@ -35,85 +36,77 @@ export function parseDataPerspective(value) {
35
36
  });
36
37
  }
37
38
  export function dataPerspectiveFingerprint(baseFingerprint, perspective) {
38
- if (!perspective)
39
- return baseFingerprint;
40
39
  return createHash('sha256').update(`${baseFingerprint}\0data-perspective:${perspective}`, 'utf8').digest('hex');
41
40
  }
42
- export async function resolveSessionDataPerspective(client, requested) {
43
- if (!requested)
44
- return undefined;
41
+ function hasSurface(surfaces, perspective) {
42
+ return surfaces[perspective];
43
+ }
44
+ export async function resolveSessionDataSurfaces(client, requested) {
45
45
  const response = await client.request({ method: 'GET', path: '/api/auth/session' });
46
46
  const envelope = sessionEnvelopeSchema.safeParse(response.data);
47
47
  const value = envelope.success && envelope.data.data !== undefined ? envelope.data.data : response.data;
48
48
  const session = sessionSurfaceSchema.safeParse(value);
49
49
  if (!session.success) {
50
- throw new CliError('Unable to confirm Data perspective from current Session.', {
50
+ throw new CliError('Unable to confirm Data perspectives from current Session.', {
51
51
  cause: session.error,
52
52
  code: 'DATA_PERSPECTIVE_SESSION_INCOMPATIBLE',
53
53
  exitCode: EXIT_CODES.compatibility,
54
54
  safeDetails: { requestState: 'read_failed', requestedPerspective: requested },
55
55
  });
56
56
  }
57
- const sessionPerspective = session.data.surfaces.kernel ? 'kernel' : 'studio';
58
- if (requested === 'kernel' && sessionPerspective !== 'kernel') {
59
- throw new CliError('The current account does not have Kernel management rights and cannot use the Kernel Data perspective.', {
60
- code: 'DATA_KERNEL_PERMISSION_REQUIRED',
57
+ const surfaces = session.data.surfaces;
58
+ if (!surfaces.studio && !surfaces.kernel) {
59
+ throw new CliError('The current account has neither Studio nor Kernel Data access.', {
60
+ code: 'DATA_PERSPECTIVE_PERMISSION_REQUIRED',
61
61
  exitCode: EXIT_CODES.authorization,
62
- safeDetails: { requestState: 'not_sent', requestedPerspective: requested, sessionPerspective },
62
+ safeDetails: { requestState: 'not_sent', requestedPerspective: requested, sessionSurfaces: surfaces },
63
63
  });
64
64
  }
65
- return sessionPerspective;
66
- }
67
- export function resolveOperationDataPerspective(requested, sessionPerspective, operation, availablePerspectives, route = 'session') {
68
- if (!requested) {
69
- return route === 'session'
70
- ? { perspectiveSource: 'legacy-unverified' }
71
- : { effectivePerspective: route, perspectiveSource: 'fixed-route' };
72
- }
73
- if (!availablePerspectives.includes(requested)) {
74
- throw new CliError(`${operation} does not support the ${requested} Data perspective.`, {
75
- code: 'DATA_PERSPECTIVE_UNAVAILABLE',
65
+ if (requested !== 'auto' && !hasSurface(surfaces, requested)) {
66
+ throw new CliError(`The current account does not have ${requested === 'kernel' ? 'Kernel management rights' : 'Studio access'}.`, {
67
+ code: requested === 'kernel' ? 'DATA_KERNEL_PERMISSION_REQUIRED' : 'DATA_STUDIO_PERMISSION_REQUIRED',
76
68
  exitCode: EXIT_CODES.authorization,
77
- safeDetails: { availablePerspectives, operation, requestState: 'not_sent', requestedPerspective: requested },
69
+ safeDetails: { requestState: 'not_sent', requestedPerspective: requested, sessionSurfaces: surfaces },
78
70
  });
79
71
  }
80
- if (!sessionPerspective) {
81
- throw new CliError('The explicit Data perspective lacks confirmed Session capabilities.', {
82
- code: 'DATA_PERSPECTIVE_SESSION_INCOMPATIBLE',
83
- exitCode: EXIT_CODES.compatibility,
84
- safeDetails: { operation, requestState: 'not_sent', requestedPerspective: requested },
85
- });
86
- }
87
- if (requested === 'kernel' && sessionPerspective !== 'kernel') {
88
- throw new CliError('The current account does not have Kernel management rights and cannot use the Kernel Data perspective.', {
89
- code: 'DATA_KERNEL_PERMISSION_REQUIRED',
90
- exitCode: EXIT_CODES.authorization,
91
- safeDetails: {
92
- availablePerspectives,
93
- operation,
94
- requestState: 'not_sent',
95
- requestedPerspective: requested,
96
- sessionPerspective,
97
- },
98
- });
72
+ return surfaces;
73
+ }
74
+ export function resolveOperationDataPerspective(requested, sessionSurfaces, operation, availablePerspectives, route = 'session') {
75
+ if (requested !== 'auto') {
76
+ if (!availablePerspectives.includes(requested)) {
77
+ throw new CliError(`${operation} does not support the ${requested} Data perspective.`, {
78
+ code: 'DATA_PERSPECTIVE_UNAVAILABLE',
79
+ exitCode: EXIT_CODES.authorization,
80
+ safeDetails: { availablePerspectives, operation, requestState: 'not_sent', requestedPerspective: requested },
81
+ });
82
+ }
83
+ if (!hasSurface(sessionSurfaces, requested)) {
84
+ throw new CliError(`The current account does not have ${requested === 'kernel' ? 'Kernel management rights' : 'Studio access'}.`, {
85
+ code: requested === 'kernel' ? 'DATA_KERNEL_PERMISSION_REQUIRED' : 'DATA_STUDIO_PERMISSION_REQUIRED',
86
+ exitCode: EXIT_CODES.authorization,
87
+ safeDetails: { availablePerspectives, operation, requestState: 'not_sent', requestedPerspective: requested, sessionSurfaces },
88
+ });
89
+ }
90
+ return { effectivePerspective: requested, perspectiveSource: 'explicit' };
99
91
  }
100
- if (route === 'session') {
101
- if (requested === 'studio' && sessionPerspective === 'kernel') {
102
- throw new CliError('The current Server routes this Kernel Session to the management perspective, so it cannot be forced to Studio.', {
103
- code: 'DATA_STUDIO_SESSION_REQUIRED',
92
+ if (route !== 'session') {
93
+ if (!availablePerspectives.includes(route) || !hasSurface(sessionSurfaces, route)) {
94
+ throw new CliError(`The current account cannot use the ${route} perspective required by ${operation}.`, {
95
+ code: route === 'kernel' ? 'DATA_KERNEL_PERMISSION_REQUIRED' : 'DATA_STUDIO_PERMISSION_REQUIRED',
104
96
  exitCode: EXIT_CODES.authorization,
105
- recovery: ['Use an account or Profile without Kernel administrative rights, or use a Studio-only entry point.'],
106
- safeDetails: {
107
- availablePerspectives,
108
- operation,
109
- requestState: 'not_sent',
110
- requestedPerspective: requested,
111
- sessionPerspective,
112
- },
97
+ safeDetails: { availablePerspectives, operation, requestState: 'not_sent', requestedPerspective: requested, sessionSurfaces },
113
98
  });
114
99
  }
115
- return { effectivePerspective: sessionPerspective, perspectiveSource: 'session-scope' };
100
+ return { effectivePerspective: route, perspectiveSource: 'fixed-route' };
101
+ }
102
+ const effectivePerspective = sessionSurfaces.studio ? 'studio' : 'kernel';
103
+ if (!availablePerspectives.includes(effectivePerspective)) {
104
+ throw new CliError(`${operation} does not support an available Data perspective.`, {
105
+ code: 'DATA_PERSPECTIVE_UNAVAILABLE',
106
+ exitCode: EXIT_CODES.authorization,
107
+ safeDetails: { availablePerspectives, operation, requestState: 'not_sent', requestedPerspective: requested, sessionSurfaces },
108
+ });
116
109
  }
117
- return { effectivePerspective: route, perspectiveSource: 'fixed-route' };
110
+ return { effectivePerspective, perspectiveSource: 'studio-first' };
118
111
  }
119
112
  //# sourceMappingURL=perspective.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"perspective.js","sourceRoot":"","sources":["../../src/data/perspective.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"perspective.js","sourceRoot":"","sources":["../../src/data/perspective.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-locator.d.ts","sourceRoot":"","sources":["../../src/data/resource-locator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,qBAAqB;IAChC,eAAe;CAGhB,CAAC;AAWF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAuEhI"}
1
+ {"version":3,"file":"resource-locator.d.ts","sourceRoot":"","sources":["../../src/data/resource-locator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,qBAAqB;IAChC,eAAe;CAGhB,CAAC;AAWF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAyEhI"}
@@ -17,28 +17,30 @@ function notSent(code, message, safeDetails, recovery) {
17
17
  }
18
18
  export function prepareOntologyReadRuntime(runtime, scope, resourceTeam) {
19
19
  const normalizedResourceTeam = resourceTeam === undefined ? undefined : requireExactId(resourceTeam, 'Resource Team');
20
+ const requestedPerspective = runtime.requestedPerspective;
21
+ const explicitTeam = runtime.runtimeInput.explicitTeam;
20
22
  if (normalizedResourceTeam && scope.kind !== 'ontology') {
21
23
  throw notSent('DATA_RESOURCE_TEAM_NOT_APPLICABLE', '--resource-team only supports precise Ontology scope, old Bucket compatible commands continue to use --team.', { dataScopeKind: scope.kind }, ['Use --ontology instead, <Ontology ID>, or --team in the old Bucket command.']);
22
24
  }
23
- if (normalizedResourceTeam && runtime.dataPerspective !== 'kernel') {
24
- throw notSent('DATA_RESOURCE_TEAM_NOT_APPLICABLE', '--resource-team is only used for explicit Kernel Ontology reads; Studio uses the --team context.', { requestedPerspective: runtime.dataPerspective ?? 'legacy' }, [
25
+ if (normalizedResourceTeam && requestedPerspective === 'studio') {
26
+ throw notSent('DATA_RESOURCE_TEAM_NOT_APPLICABLE', '--resource-team is only used for explicit Kernel Ontology reads; Studio uses the --team context.', { requestedPerspective }, [
25
27
  'For Kernel reading, please explicitly pass --perspective kernel; for Studio reading, please remove --resource-team and use --team.',
26
28
  ]);
27
29
  }
28
- if (normalizedResourceTeam && runtime.context.team) {
29
- throw notSent('DATA_TEAM_ROLE_CONFLICT', '--team and --resource-team represent different roles and cannot be used at the same time in the current request.', { requestedPerspective: runtime.dataPerspective }, [
30
+ if (normalizedResourceTeam && explicitTeam) {
31
+ throw notSent('DATA_TEAM_ROLE_CONFLICT', '--team and --resource-team represent different roles and cannot be used at the same time in the current request.', { requestedPerspective }, [
30
32
  'Kernel global resource reading retains --resource-team and removes --team; explicit Team filtering retains --team and removes --resource-team.',
31
33
  ]);
32
34
  }
33
- if (runtime.dataPerspective !== 'kernel' || runtime.teamMode !== 'none')
34
- return runtime;
35
35
  if (scope.kind !== 'ontology')
36
36
  return runtime;
37
- if (!normalizedResourceTeam) {
37
+ if (requestedPerspective === 'kernel' && runtime.teamMode === 'none' && !normalizedResourceTeam) {
38
38
  throw notSent('DATA_RESOURCE_TEAM_REQUIRED', 'Current Kernel Ontology reads require an explicit data resource Team.', { ontologyId: scope.id }, [
39
39
  'Pass in --resource-team <Team ID> after confirming the data resource Team of the target Ontology; do not use the Ontology owner Team to guess.',
40
40
  ]);
41
41
  }
42
+ if (!normalizedResourceTeam)
43
+ return runtime;
42
44
  if (runtime.resourceLocator) {
43
45
  if (runtime.resourceLocator.ontologyId === scope.id && runtime.resourceLocator.teamId === normalizedResourceTeam)
44
46
  return runtime;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-locator.js","sourceRoot":"","sources":["../../src/data/resource-locator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-locator.js","sourceRoot":"","sources":["../../src/data/resource-locator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type DataCallResult } from './client.js';
2
- import type { DataRuntime } from './command.js';
2
+ import { type DataRuntime } from './command.js';
3
3
  import type { DataScope } from './scope.js';
4
4
  type ViewRowColumnKind = 'base' | 'feature' | 'property' | 'tag-group';
5
5
  export interface ViewRowColumn {
@@ -1 +1 @@
1
- {"version":3,"file":"view-rows.d.ts","sourceRoot":"","sources":["../../src/data/view-rows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,KAAK,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACnC,YAAY,EAAE,qBAAqB,GAAG,aAAa,CAAC;IACpD,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AAgOD,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,kBAAkB,CAAC,CAwI7B"}
1
+ {"version":3,"file":"view-rows.d.ts","sourceRoot":"","sources":["../../src/data/view-rows.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,KAAK,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACnC,YAAY,EAAE,qBAAqB,GAAG,aAAa,CAAC;IACpD,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE;AA8WD,wBAAsB,YAAY,CAChC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,kBAAkB,CAAC,CAoB7B"}
@@ -1,6 +1,7 @@
1
1
  import { CliError, EXIT_CODES } from '../errors/cli-error.js';
2
2
  import { attachmentSummary } from './attachments.js';
3
3
  import { DataClient } from './client.js';
4
+ import { resolveDataRuntimePerspective } from './command.js';
4
5
  import { batchGetFeatureValues, listViewFeatureColumns, MAX_VIEW_COLUMNS } from './feature-values.js';
5
6
  import { requireExactId } from './policy.js';
6
7
  import { normalizeTreeNodes } from './tree.js';
@@ -209,12 +210,12 @@ async function listMetadata(client, scope, path, id) {
209
210
  safeDetails: { maxItems: 2000, operation: id },
210
211
  });
211
212
  }
212
- export async function readViewRows(runtime, scope, input) {
213
+ async function readViewRowsOnce(runtime, scope, input) {
213
214
  const viewId = requireExactId(input.viewId, 'View');
214
215
  if (!Number.isInteger(input.limit) || input.limit < 1 || input.limit > 200) {
215
216
  throw new CliError('--limit must be between 1 and 200.', { code: 'DATA_BATCH_LIMIT', exitCode: EXIT_CODES.validation });
216
217
  }
217
- const client = new DataClient(runtime, scope);
218
+ const client = new DataClient(runtime, scope, false);
218
219
  const viewResult = await client.call('data.view.tree', 'GET', '/api/v2/data/views/tree', 'read', {
219
220
  query: { ontologyId: scope.id },
220
221
  });
@@ -234,7 +235,7 @@ export async function readViewRows(runtime, scope, input) {
234
235
  const planned = planColumns(table, fieldList.columns, tagGroups?.items ?? []);
235
236
  const advancedFilter = configuredAdvancedFilter(viewRecord);
236
237
  const assetResult = advancedFilter
237
- ? await client.page('data.asset.search', 'POST', '/api/kernel/data-v2/search/advanced', {
238
+ ? await client.page('data.asset.search', 'POST', '/api/v2/data/assets/search/advanced', {
238
239
  body: {
239
240
  ...advancedFilter,
240
241
  ontologyId: scope.id,
@@ -338,4 +339,26 @@ export async function readViewRows(runtime, scope, input) {
338
339
  },
339
340
  };
340
341
  }
342
+ export async function readViewRows(runtime, scope, input) {
343
+ const canFallback = runtime.requestedPerspective === 'auto' && runtime.dataPerspective === 'studio' && runtime.sessionSurfaces.kernel;
344
+ const studio = await readViewRowsOnce(runtime, scope, input);
345
+ if (!canFallback || studio.rows.length > 0)
346
+ return studio;
347
+ const kernelRuntime = await resolveDataRuntimePerspective(runtime, 'kernel');
348
+ const kernel = await readViewRowsOnce(kernelRuntime, scope, input);
349
+ return {
350
+ ...kernel,
351
+ binding: {
352
+ ...kernel.binding,
353
+ perspectiveResolution: {
354
+ attempts: [
355
+ { outcome: 'empty', perspective: 'studio' },
356
+ { outcome: kernel.rows.length > 0 ? 'success' : 'empty', perspective: 'kernel' },
357
+ ],
358
+ fallbackReason: 'studio_empty',
359
+ policy: 'studio-first',
360
+ },
361
+ },
362
+ };
363
+ }
341
364
  //# sourceMappingURL=view-rows.js.map