@skaile/workspaces 5.16.0 → 5.17.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.
Files changed (162) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/app-sdk/index.js +1 -1
  3. package/dist/{asset-feeds-BELBSJEE.js → asset-feeds-MALYFZUM.js} +4 -4
  4. package/dist/{asset-feeds-BELBSJEE.js.map → asset-feeds-MALYFZUM.js.map} +1 -1
  5. package/dist/asset-manager/index.js +1 -1
  6. package/dist/bridge/drivers/claude-sdk.js +279 -96
  7. package/dist/bridge/drivers/claude-sdk.js.map +1 -1
  8. package/dist/bridge/drivers/codex.js +4 -4
  9. package/dist/bridge/drivers/continue.js +4 -4
  10. package/dist/bridge/drivers/echo.js +4 -4
  11. package/dist/bridge/drivers/gemini.js +6 -6
  12. package/dist/bridge/drivers/goose.js +4 -4
  13. package/dist/bridge/drivers/omp.js +6 -6
  14. package/dist/bridge/drivers/opencode.js +4 -4
  15. package/dist/bridge/drivers/qwen.js +6 -6
  16. package/dist/bridge/index.js +8 -8
  17. package/dist/bridge/src/drivers/claude-sdk.d.ts +74 -20
  18. package/dist/bridge/src/drivers/claude-sdk.d.ts.map +1 -1
  19. package/dist/bridge/src/drivers/claude-self-turns.d.ts +25 -6
  20. package/dist/bridge/src/drivers/claude-self-turns.d.ts.map +1 -1
  21. package/dist/bridge/src/drivers/sanitize-assistant-text.d.ts +10 -0
  22. package/dist/bridge/src/drivers/sanitize-assistant-text.d.ts.map +1 -1
  23. package/dist/bridge/src/drivers/scrub-transcript.d.ts +20 -0
  24. package/dist/bridge/src/drivers/scrub-transcript.d.ts.map +1 -1
  25. package/dist/{chunk-NSNM2ZXF.js → chunk-3OYOBTY4.js} +44 -4
  26. package/dist/chunk-3OYOBTY4.js.map +1 -0
  27. package/dist/{chunk-6RTEUWXX.js → chunk-5SWED2LW.js} +3 -3
  28. package/dist/{chunk-6RTEUWXX.js.map → chunk-5SWED2LW.js.map} +1 -1
  29. package/dist/{chunk-PW3TYWOI.js → chunk-AJ7EGIFR.js} +3 -3
  30. package/dist/{chunk-PW3TYWOI.js.map → chunk-AJ7EGIFR.js.map} +1 -1
  31. package/dist/{chunk-E634MBP6.js → chunk-BBRMS4IC.js} +3 -3
  32. package/dist/{chunk-E634MBP6.js.map → chunk-BBRMS4IC.js.map} +1 -1
  33. package/dist/{chunk-SMUIYYCH.js → chunk-BVXXBZWA.js} +7 -7
  34. package/dist/{chunk-SMUIYYCH.js.map → chunk-BVXXBZWA.js.map} +1 -1
  35. package/dist/{chunk-ISSYT5AZ.js → chunk-CWAWYXD5.js} +3 -3
  36. package/dist/{chunk-ISSYT5AZ.js.map → chunk-CWAWYXD5.js.map} +1 -1
  37. package/dist/{chunk-OHNNCXMB.js → chunk-DR5ZOEYI.js} +7 -7
  38. package/dist/{chunk-OHNNCXMB.js.map → chunk-DR5ZOEYI.js.map} +1 -1
  39. package/dist/{chunk-YIDZJHY6.js → chunk-EFLKSMCO.js} +3 -3
  40. package/dist/{chunk-YIDZJHY6.js.map → chunk-EFLKSMCO.js.map} +1 -1
  41. package/dist/{chunk-CQFVKN6S.js → chunk-EOKWTN4N.js} +207 -66
  42. package/dist/chunk-EOKWTN4N.js.map +1 -0
  43. package/dist/{chunk-Y25V2MW2.js → chunk-EYDRONKO.js} +3 -3
  44. package/dist/{chunk-Y25V2MW2.js.map → chunk-EYDRONKO.js.map} +1 -1
  45. package/dist/{chunk-DQOAPR4M.js → chunk-FACRITOL.js} +2 -2
  46. package/dist/{chunk-DQOAPR4M.js.map → chunk-FACRITOL.js.map} +1 -1
  47. package/dist/{chunk-TXGVG7VH.js → chunk-GYZJKZPJ.js} +3 -3
  48. package/dist/{chunk-TXGVG7VH.js.map → chunk-GYZJKZPJ.js.map} +1 -1
  49. package/dist/{chunk-TADJCATD.js → chunk-HLETG3CX.js} +3 -3
  50. package/dist/{chunk-TADJCATD.js.map → chunk-HLETG3CX.js.map} +1 -1
  51. package/dist/{chunk-FWAJUWXQ.js → chunk-KZWZRNIY.js} +4 -4
  52. package/dist/{chunk-FWAJUWXQ.js.map → chunk-KZWZRNIY.js.map} +1 -1
  53. package/dist/{chunk-X5O56UO4.js → chunk-L2AMXONH.js} +3 -3
  54. package/dist/chunk-L2AMXONH.js.map +1 -0
  55. package/dist/{chunk-6Q7NKTDG.js → chunk-LQT2IKYY.js} +2 -2
  56. package/dist/{chunk-6Q7NKTDG.js.map → chunk-LQT2IKYY.js.map} +1 -1
  57. package/dist/{chunk-A7AZ3RL5.js → chunk-MMARPEV7.js} +4 -4
  58. package/dist/{chunk-A7AZ3RL5.js.map → chunk-MMARPEV7.js.map} +1 -1
  59. package/dist/{chunk-J4RRH2NP.js → chunk-OQN7PCI4.js} +3 -3
  60. package/dist/{chunk-J4RRH2NP.js.map → chunk-OQN7PCI4.js.map} +1 -1
  61. package/dist/{chunk-5CE6J4DB.js → chunk-OXUCYHL5.js} +5 -5
  62. package/dist/{chunk-5CE6J4DB.js.map → chunk-OXUCYHL5.js.map} +1 -1
  63. package/dist/{chunk-A26MUUN7.js → chunk-QBY74UBH.js} +7 -7
  64. package/dist/{chunk-A26MUUN7.js.map → chunk-QBY74UBH.js.map} +1 -1
  65. package/dist/{chunk-VJ2DZLDM.js → chunk-QEX75L77.js} +3 -3
  66. package/dist/{chunk-VJ2DZLDM.js.map → chunk-QEX75L77.js.map} +1 -1
  67. package/dist/{chunk-HG52NGAV.js → chunk-QSLXB44M.js} +3 -3
  68. package/dist/{chunk-HG52NGAV.js.map → chunk-QSLXB44M.js.map} +1 -1
  69. package/dist/{chunk-TKI7YDWE.js → chunk-QW534EZB.js} +6 -6
  70. package/dist/{chunk-TKI7YDWE.js.map → chunk-QW534EZB.js.map} +1 -1
  71. package/dist/{chunk-XGR7IDTY.js → chunk-QXA2W6UB.js} +3 -3
  72. package/dist/{chunk-XGR7IDTY.js.map → chunk-QXA2W6UB.js.map} +1 -1
  73. package/dist/{chunk-OJHPG6HK.js → chunk-V5CDPKDA.js} +7 -7
  74. package/dist/{chunk-OJHPG6HK.js.map → chunk-V5CDPKDA.js.map} +1 -1
  75. package/dist/{chunk-DADAZLFW.js → chunk-W44KA24A.js} +2 -2
  76. package/dist/{chunk-DADAZLFW.js.map → chunk-W44KA24A.js.map} +1 -1
  77. package/dist/{chunk-SAGBVBY2.js → chunk-WY22FMZF.js} +4 -4
  78. package/dist/{chunk-SAGBVBY2.js.map → chunk-WY22FMZF.js.map} +1 -1
  79. package/dist/{chunk-D5WTOVLG.js → chunk-Y56YIT6J.js} +2 -2
  80. package/dist/chunk-Y56YIT6J.js.map +1 -0
  81. package/dist/{chunk-ZIW34FGO.js → chunk-YIF2IJUA.js} +3 -3
  82. package/dist/{chunk-ZIW34FGO.js.map → chunk-YIF2IJUA.js.map} +1 -1
  83. package/dist/{chunk-RTNWU2UD.js → chunk-ZPCABSSW.js} +3 -3
  84. package/dist/{chunk-RTNWU2UD.js.map → chunk-ZPCABSSW.js.map} +1 -1
  85. package/dist/{chunk-72KZJE3G.js → chunk-ZWUJ22RF.js} +4 -4
  86. package/dist/{chunk-72KZJE3G.js.map → chunk-ZWUJ22RF.js.map} +1 -1
  87. package/dist/cli/index.js +47 -47
  88. package/dist/connectors/index.js +10 -10
  89. package/dist/{connectors-44RE2QEM.js → connectors-CIEIMJY2.js} +13 -13
  90. package/dist/{connectors-44RE2QEM.js.map → connectors-CIEIMJY2.js.map} +1 -1
  91. package/dist/connectors-shared/index.js +2 -2
  92. package/dist/{ensure-sources-R6AHZ7RV.js → ensure-sources-I62QMZZP.js} +4 -4
  93. package/dist/{ensure-sources-R6AHZ7RV.js.map → ensure-sources-I62QMZZP.js.map} +1 -1
  94. package/dist/factory-assets/connectors/box.js +10 -10
  95. package/dist/factory-assets/connectors/deploy.js +10 -10
  96. package/dist/factory-assets/connectors/devserver.js +10 -10
  97. package/dist/factory-assets/connectors/flow/adapter.js +10 -10
  98. package/dist/factory-assets/connectors/flow/run-flow.js +11 -11
  99. package/dist/factory-assets/connectors/flow.js +10 -10
  100. package/dist/factory-assets/connectors/git.js +10 -10
  101. package/dist/factory-assets/connectors/gmail.js +10 -10
  102. package/dist/factory-assets/connectors/googledrive.js +10 -10
  103. package/dist/factory-assets/connectors/local.js +10 -10
  104. package/dist/factory-assets/connectors/mattermost.js +10 -10
  105. package/dist/factory-assets/connectors/memory.js +10 -10
  106. package/dist/factory-assets/connectors/minio.js +10 -10
  107. package/dist/factory-assets/connectors/postgres.js +10 -10
  108. package/dist/factory-assets/connectors/s3.js +10 -10
  109. package/dist/factory-assets/connectors/sharepoint.js +10 -10
  110. package/dist/factory-assets/connectors/sqlite.js +10 -10
  111. package/dist/factory-assets/connectors/static-server.js +10 -10
  112. package/dist/factory-assets/connectors/tunnel.js +10 -10
  113. package/dist/factory-assets/connectors/webdav.js +10 -10
  114. package/dist/factory-assets/connectors/xstate-store.js +10 -10
  115. package/dist/factory-assets/connectors/xstate.js +10 -10
  116. package/dist/{helpers-FNQL5PI7.js → helpers-3FOM37BO.js} +4 -4
  117. package/dist/{helpers-FNQL5PI7.js.map → helpers-3FOM37BO.js.map} +1 -1
  118. package/dist/{library-publish-GHPVY42Y.js → library-publish-EFKITCGE.js} +26 -26
  119. package/dist/{library-publish-GHPVY42Y.js.map → library-publish-EFKITCGE.js.map} +1 -1
  120. package/dist/model-endpoint/index.js +3 -3
  121. package/dist/{open-library-YSUGNP36.js → open-library-NZUI4XGF.js} +5 -5
  122. package/dist/{open-library-YSUGNP36.js.map → open-library-NZUI4XGF.js.map} +1 -1
  123. package/dist/{project-NDSLXERO.js → project-2BNFZ2CR.js} +22 -22
  124. package/dist/{project-NDSLXERO.js.map → project-2BNFZ2CR.js.map} +1 -1
  125. package/dist/runner/index.js +17 -17
  126. package/dist/runner/src/coalesced-restart.d.ts +41 -0
  127. package/dist/runner/src/coalesced-restart.d.ts.map +1 -0
  128. package/dist/runner/src/compaction/prompt.d.ts.map +1 -1
  129. package/dist/runner/src/mcp-runtime-handlers.d.ts +27 -0
  130. package/dist/runner/src/mcp-runtime-handlers.d.ts.map +1 -1
  131. package/dist/runner/src/runner-capabilities.d.ts +7 -0
  132. package/dist/runner/src/runner-capabilities.d.ts.map +1 -1
  133. package/dist/runner/src/serve.d.ts.map +1 -1
  134. package/dist/runner/src/session-capability-wiring.d.ts +2 -0
  135. package/dist/runner/src/session-capability-wiring.d.ts.map +1 -1
  136. package/dist/sdk/asset-manager.js +1 -1
  137. package/dist/sdk/bridge.js +8 -8
  138. package/dist/sdk/index.js +17 -17
  139. package/dist/sdk/runner.js +17 -17
  140. package/dist/sdk/session.js +2 -2
  141. package/dist/sdk/types.js +1 -1
  142. package/dist/{serve-preflight-ON2LS3SD.js → serve-preflight-V5GM33T3.js} +2 -2
  143. package/dist/{serve-preflight-ON2LS3SD.js.map → serve-preflight-V5GM33T3.js.map} +1 -1
  144. package/dist/session/index.js +2 -2
  145. package/dist/{setup-MFPEQS2I.js → setup-ZMAPTKJW.js} +13 -13
  146. package/dist/{setup-MFPEQS2I.js.map → setup-ZMAPTKJW.js.map} +1 -1
  147. package/dist/{source-4QVRD5NV.js → source-6BZA34F5.js} +24 -24
  148. package/dist/{source-4QVRD5NV.js.map → source-6BZA34F5.js.map} +1 -1
  149. package/dist/{source-manifest-publish-ZIO24GUM.js → source-manifest-publish-MJXCSUKT.js} +26 -26
  150. package/dist/{source-manifest-publish-ZIO24GUM.js.map → source-manifest-publish-MJXCSUKT.js.map} +1 -1
  151. package/dist/tui/index.js +17 -17
  152. package/dist/types/index.js +1 -1
  153. package/dist/types/src/events.d.ts +7 -4
  154. package/dist/types/src/events.d.ts.map +1 -1
  155. package/dist/workspace-plugin/adapters/mcp.js +12 -12
  156. package/dist/workspace-plugin/adapters/omp.js +7 -7
  157. package/dist/workspace-plugin/index.js +1 -1
  158. package/package.json +1 -1
  159. package/dist/chunk-CQFVKN6S.js.map +0 -1
  160. package/dist/chunk-D5WTOVLG.js.map +0 -1
  161. package/dist/chunk-NSNM2ZXF.js.map +0 -1
  162. package/dist/chunk-X5O56UO4.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../cli/src/store-publisher.ts"],"names":[],"mappings":";;;AA+FO,SAAS,uBAAA,CACd,MAAA,GAAsB,cAAA,EAAe,EACrC,YAAY,GAAA,EACK;AAGjB,EAAA,MAAM,IAAA,GAAO,OACX,IAAA,EACA,IAAA,KACe;AACf,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,EAAc;AAChC,IAAA,OAAO,UAAA,CAAc,EAAE,GAAG,MAAA,EAAQ,GAAA,EAAI,EAAG,IAAA,EAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAM,CAAA;AAAA,EACvE,CAAA;AACA,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,MAAM,IAAA,CAAK,YAAY,CAAA;AAAA,IAC3B,UAAA,EAAY,CAAC,IAAA,KAAS,IAAA,CAAK,mBAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,CAAA;AAAA,IACtE,WAAA,EAAa,MAAM,IAAA,CAAK,iBAAiB,CAAA;AAAA,IACzC,UAAA,EAAY,CAAC,EAAA,KAAO,IAAA,CAAK,CAAA,gBAAA,EAAmB,EAAE,CAAA,KAAA,CAAA,EAAS,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,IAAI,CAAA;AAAA,IACnF,QAAQ,CAAC,KAAA,KAAU,IAAA,CAAK,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAE,CAAA;AAAA,IAC/C,kBAAkB,CAAC,EAAA,KAAO,IAAA,CAAK,CAAA,gBAAA,EAAmB,EAAE,CAAA,WAAA,CAAa,CAAA;AAAA,IACjE,cAAc,CAAC,EAAA,KAAO,IAAA,CAAK,CAAA,eAAA,EAAkB,EAAE,CAAA,QAAA,CAAU,CAAA;AAAA,IACzD,YAAA,EAAc,CAAC,EAAA,EAAI,IAAA,EAAM,WACvB,IAAA,CAAK,CAAA,eAAA,EAAkB,EAAE,CAAA,QAAA,CAAA,EAAY;AAAA,MACnC,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA;AAAA,MACA,GAAI,SAAS,EAAE,MAAA,EAAQ,EAAE,MAAA,EAAQ,GAAA,EAAI,EAAE,GAAI;AAAC,KAC7C,CAAA;AAAA,IACH,cAAA,EAAgB,CAAC,EAAA,KAAO,IAAA,CAAK,CAAA,eAAA,EAAkB,EAAE,CAAA,UAAA,CAAA,EAAc,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,IAAI,CAAA;AAAA,IAC3F,qBAAA,EAAuB,CAAC,EAAA,KACtB,IAAA,CAAK,sBAAsB,kBAAA,CAAmB,EAAE,CAAC,CAAA,aAAA,CAAe;AAAA,GACpE;AACF","file":"chunk-ISSYT5AZ.js","sourcesContent":["/**\n * Typed REST client for the AI Asset Store **publisher** surface — the\n * curator-publish flow (`skaile source manifest publish` / `yank`). Thin\n * wrappers over {@link storeFetch}; every method maps 1:1 to an `/api/v1/…`\n * endpoint. The {@link PublisherClient} interface is injectable so the\n * orchestration in `commands/source-manifest-publish.ts` can be unit-tested\n * against a fake without a live store.\n *\n * @docLink cli/dev-guide#store-publisher\n */\n\nimport { getStoreConfig, getStoreToken, type StoreConfig, storeFetch } from \"./store-client.ts\";\n\n/**\n * The publisher REST surface used by the curator-publish flow. Kept minimal —\n * only the endpoints `runPublish` / `runYank` actually call. Response shapes\n * are narrowed to the fields the orchestration reads (the server returns more).\n */\nexport interface PublisherClient {\n /**\n * Identity of the caller. `username` is the Keycloak login (personal-tier\n * namespace); `githubLogin` is the verified GitHub handle when connected —\n * the namespace to publish under when it differs from the login.\n */\n me(): Promise<{ username: string; githubLogin?: string | null }>;\n /** Register (or re-register) a source; returns the created/existing row id. */\n sourcesAdd(body: {\n url: string;\n ref: string;\n sidecarUrl?: string;\n sidecarRef?: string;\n /**\n * Target publisher namespace (the manifest's `publisher`). When it differs\n * from the caller's login username, the store resolves the CLAIMED Publisher\n * for it (the store must already have the claim). Omitted → the store\n * defaults to `@<username>` (personal).\n */\n namespace?: string;\n }): Promise<{ id: string }>;\n /** List sources — used to recover an id when `sourcesAdd` rejects a dup url. */\n sourcesList(): Promise<Array<{ id: string; url: string }>>;\n /** Kick off a source sync; returns the async job id to poll. */\n sourceSync(id: string): Promise<{ jobId: string }>;\n /** Poll a job's terminal status + per-item results. */\n jobGet(\n jobId: string,\n ): Promise<{ status: string; items?: Array<{ label: string; status: string; error?: string }> }>;\n /** Discovered publishable candidates for a synced source. */\n sourceCandidates(id: string): Promise<\n Array<{\n id: string;\n name: string;\n version: string;\n kind: string;\n published: boolean;\n assetRoot: string;\n }>\n >;\n /** Per-asset preview — the discovered file set + resolved candidate metadata. */\n assetPreview(id: string): Promise<{\n discoveredFiles: string[];\n candidate: { name: string; version: string; kind: string; publisherNamespace: string };\n }>;\n /**\n * Publish one asset. `dryRun` returns the would-be `{ manifest }` without\n * launching a job; the normal path returns `{ jobId }`.\n */\n assetPublish(\n id: string,\n body: { ref: string; files: string[] },\n dryRun?: boolean,\n ): Promise<{ jobId?: string; manifest?: unknown }>;\n /** Retract a published asset. Response body is ignored. */\n assetUnpublish(id: string): Promise<unknown>;\n /**\n * Read-only \"can I publish under `@<ns>` right now, and if not, what's the\n * path?\" probe. Backs the `publish --dry-run` namespace status line; its\n * `message` is store-authored and meant to be surfaced verbatim.\n */\n namespaceAvailability(ns: string): Promise<{\n namespace: string;\n status: \"owned-by-you\" | \"claimable-by-you\" | \"reserved\" | \"available\";\n claimMethod?: string;\n message: string;\n }>;\n}\n\n/**\n * Construct the real HTTP-backed {@link PublisherClient}. Every call carries a\n * longer timeout than the default store client because publish/sync trigger\n * server-side clone work.\n *\n * @param config - Store connection config; defaults to {@link getStoreConfig}.\n * @param timeoutMs - Per-request abort timeout (default 20s).\n */\nexport function makeHttpPublisherClient(\n config: StoreConfig = getStoreConfig(),\n timeoutMs = 20_000,\n): PublisherClient {\n // Acquire a fresh Keycloak token per call (device-flow session in\n // ~/.skaile/auth.json, refreshed on demand) rather than a static config.jwt.\n const call = async <T>(\n path: string,\n opts?: { method?: string; body?: unknown; params?: Record<string, string> },\n ): Promise<T> => {\n const jwt = await getStoreToken();\n return storeFetch<T>({ ...config, jwt }, path, { timeoutMs, ...opts });\n };\n return {\n me: () => call(\"/api/v1/me\"),\n sourcesAdd: (body) => call(\"/api/v1/sources\", { method: \"POST\", body }),\n sourcesList: () => call(\"/api/v1/sources\"),\n sourceSync: (id) => call(`/api/v1/sources/${id}/sync`, { method: \"POST\", body: {} }),\n jobGet: (jobId) => call(`/api/v1/jobs/${jobId}`),\n sourceCandidates: (id) => call(`/api/v1/sources/${id}/candidates`),\n assetPreview: (id) => call(`/api/v1/assets/${id}/preview`),\n assetPublish: (id, body, dryRun) =>\n call(`/api/v1/assets/${id}/publish`, {\n method: \"POST\",\n body,\n ...(dryRun ? { params: { dryRun: \"1\" } } : {}),\n }),\n assetUnpublish: (id) => call(`/api/v1/assets/${id}/unpublish`, { method: \"POST\", body: {} }),\n namespaceAvailability: (ns) =>\n call(`/api/v1/namespaces/${encodeURIComponent(ns)}/availability`),\n };\n}\n"]}
1
+ {"version":3,"sources":["../cli/src/store-publisher.ts"],"names":[],"mappings":";;;AA+FO,SAAS,uBAAA,CACd,MAAA,GAAsB,cAAA,EAAe,EACrC,YAAY,GAAA,EACK;AAGjB,EAAA,MAAM,IAAA,GAAO,OACX,IAAA,EACA,IAAA,KACe;AACf,IAAA,MAAM,GAAA,GAAM,MAAM,aAAA,EAAc;AAChC,IAAA,OAAO,UAAA,CAAc,EAAE,GAAG,MAAA,EAAQ,GAAA,EAAI,EAAG,IAAA,EAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAM,CAAA;AAAA,EACvE,CAAA;AACA,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,MAAM,IAAA,CAAK,YAAY,CAAA;AAAA,IAC3B,UAAA,EAAY,CAAC,IAAA,KAAS,IAAA,CAAK,mBAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,CAAA;AAAA,IACtE,WAAA,EAAa,MAAM,IAAA,CAAK,iBAAiB,CAAA;AAAA,IACzC,UAAA,EAAY,CAAC,EAAA,KAAO,IAAA,CAAK,CAAA,gBAAA,EAAmB,EAAE,CAAA,KAAA,CAAA,EAAS,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,IAAI,CAAA;AAAA,IACnF,QAAQ,CAAC,KAAA,KAAU,IAAA,CAAK,CAAA,aAAA,EAAgB,KAAK,CAAA,CAAE,CAAA;AAAA,IAC/C,kBAAkB,CAAC,EAAA,KAAO,IAAA,CAAK,CAAA,gBAAA,EAAmB,EAAE,CAAA,WAAA,CAAa,CAAA;AAAA,IACjE,cAAc,CAAC,EAAA,KAAO,IAAA,CAAK,CAAA,eAAA,EAAkB,EAAE,CAAA,QAAA,CAAU,CAAA;AAAA,IACzD,YAAA,EAAc,CAAC,EAAA,EAAI,IAAA,EAAM,WACvB,IAAA,CAAK,CAAA,eAAA,EAAkB,EAAE,CAAA,QAAA,CAAA,EAAY;AAAA,MACnC,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA;AAAA,MACA,GAAI,SAAS,EAAE,MAAA,EAAQ,EAAE,MAAA,EAAQ,GAAA,EAAI,EAAE,GAAI;AAAC,KAC7C,CAAA;AAAA,IACH,cAAA,EAAgB,CAAC,EAAA,KAAO,IAAA,CAAK,CAAA,eAAA,EAAkB,EAAE,CAAA,UAAA,CAAA,EAAc,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,IAAI,CAAA;AAAA,IAC3F,qBAAA,EAAuB,CAAC,EAAA,KACtB,IAAA,CAAK,sBAAsB,kBAAA,CAAmB,EAAE,CAAC,CAAA,aAAA,CAAe;AAAA,GACpE;AACF","file":"chunk-CWAWYXD5.js","sourcesContent":["/**\n * Typed REST client for the AI Asset Store **publisher** surface — the\n * curator-publish flow (`skaile source manifest publish` / `yank`). Thin\n * wrappers over {@link storeFetch}; every method maps 1:1 to an `/api/v1/…`\n * endpoint. The {@link PublisherClient} interface is injectable so the\n * orchestration in `commands/source-manifest-publish.ts` can be unit-tested\n * against a fake without a live store.\n *\n * @docLink cli/dev-guide#store-publisher\n */\n\nimport { getStoreConfig, getStoreToken, type StoreConfig, storeFetch } from \"./store-client.ts\";\n\n/**\n * The publisher REST surface used by the curator-publish flow. Kept minimal —\n * only the endpoints `runPublish` / `runYank` actually call. Response shapes\n * are narrowed to the fields the orchestration reads (the server returns more).\n */\nexport interface PublisherClient {\n /**\n * Identity of the caller. `username` is the Keycloak login (personal-tier\n * namespace); `githubLogin` is the verified GitHub handle when connected —\n * the namespace to publish under when it differs from the login.\n */\n me(): Promise<{ username: string; githubLogin?: string | null }>;\n /** Register (or re-register) a source; returns the created/existing row id. */\n sourcesAdd(body: {\n url: string;\n ref: string;\n sidecarUrl?: string;\n sidecarRef?: string;\n /**\n * Target publisher namespace (the manifest's `publisher`). When it differs\n * from the caller's login username, the store resolves the CLAIMED Publisher\n * for it (the store must already have the claim). Omitted → the store\n * defaults to `@<username>` (personal).\n */\n namespace?: string;\n }): Promise<{ id: string }>;\n /** List sources — used to recover an id when `sourcesAdd` rejects a dup url. */\n sourcesList(): Promise<Array<{ id: string; url: string }>>;\n /** Kick off a source sync; returns the async job id to poll. */\n sourceSync(id: string): Promise<{ jobId: string }>;\n /** Poll a job's terminal status + per-item results. */\n jobGet(\n jobId: string,\n ): Promise<{ status: string; items?: Array<{ label: string; status: string; error?: string }> }>;\n /** Discovered publishable candidates for a synced source. */\n sourceCandidates(id: string): Promise<\n Array<{\n id: string;\n name: string;\n version: string;\n kind: string;\n published: boolean;\n assetRoot: string;\n }>\n >;\n /** Per-asset preview — the discovered file set + resolved candidate metadata. */\n assetPreview(id: string): Promise<{\n discoveredFiles: string[];\n candidate: { name: string; version: string; kind: string; publisherNamespace: string };\n }>;\n /**\n * Publish one asset. `dryRun` returns the would-be `{ manifest }` without\n * launching a job; the normal path returns `{ jobId }`.\n */\n assetPublish(\n id: string,\n body: { ref: string; files: string[] },\n dryRun?: boolean,\n ): Promise<{ jobId?: string; manifest?: unknown }>;\n /** Retract a published asset. Response body is ignored. */\n assetUnpublish(id: string): Promise<unknown>;\n /**\n * Read-only \"can I publish under `@<ns>` right now, and if not, what's the\n * path?\" probe. Backs the `publish --dry-run` namespace status line; its\n * `message` is store-authored and meant to be surfaced verbatim.\n */\n namespaceAvailability(ns: string): Promise<{\n namespace: string;\n status: \"owned-by-you\" | \"claimable-by-you\" | \"reserved\" | \"available\";\n claimMethod?: string;\n message: string;\n }>;\n}\n\n/**\n * Construct the real HTTP-backed {@link PublisherClient}. Every call carries a\n * longer timeout than the default store client because publish/sync trigger\n * server-side clone work.\n *\n * @param config - Store connection config; defaults to {@link getStoreConfig}.\n * @param timeoutMs - Per-request abort timeout (default 20s).\n */\nexport function makeHttpPublisherClient(\n config: StoreConfig = getStoreConfig(),\n timeoutMs = 20_000,\n): PublisherClient {\n // Acquire a fresh Keycloak token per call (device-flow session in\n // ~/.skaile/auth.json, refreshed on demand) rather than a static config.jwt.\n const call = async <T>(\n path: string,\n opts?: { method?: string; body?: unknown; params?: Record<string, string> },\n ): Promise<T> => {\n const jwt = await getStoreToken();\n return storeFetch<T>({ ...config, jwt }, path, { timeoutMs, ...opts });\n };\n return {\n me: () => call(\"/api/v1/me\"),\n sourcesAdd: (body) => call(\"/api/v1/sources\", { method: \"POST\", body }),\n sourcesList: () => call(\"/api/v1/sources\"),\n sourceSync: (id) => call(`/api/v1/sources/${id}/sync`, { method: \"POST\", body: {} }),\n jobGet: (jobId) => call(`/api/v1/jobs/${jobId}`),\n sourceCandidates: (id) => call(`/api/v1/sources/${id}/candidates`),\n assetPreview: (id) => call(`/api/v1/assets/${id}/preview`),\n assetPublish: (id, body, dryRun) =>\n call(`/api/v1/assets/${id}/publish`, {\n method: \"POST\",\n body,\n ...(dryRun ? { params: { dryRun: \"1\" } } : {}),\n }),\n assetUnpublish: (id) => call(`/api/v1/assets/${id}/unpublish`, { method: \"POST\", body: {} }),\n namespaceAvailability: (ns) =>\n call(`/api/v1/namespaces/${encodeURIComponent(ns)}/availability`),\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { requireValidPublisherOrExit } from './chunk-5CE6J4DB.js';
2
- import { openLibraryManager } from './chunk-J4RRH2NP.js';
3
- import { logErr, logWarn, logInfo, logOk, S } from './chunk-VJ2DZLDM.js';
1
+ import { requireValidPublisherOrExit } from './chunk-OXUCYHL5.js';
2
+ import { openLibraryManager } from './chunk-OQN7PCI4.js';
3
+ import { logErr, logWarn, logInfo, logOk, S } from './chunk-QEX75L77.js';
4
4
  import { getKindRegistry, getKnownKinds } from './chunk-2SKPPIV7.js';
5
5
  import { getStoreManifestsDir, storeManifestFile, LocalCatalogSource, curatedManifestOverlay, writeCuratedManifest, commitStoreManifest } from './chunk-D3PU3C6F.js';
6
6
  import { computeDeterministicHash, discoverAssetsInTree } from './chunk-ES6ARJPQ.js';
@@ -344,12 +344,12 @@ function addSourceManifestCommands(src) {
344
344
  ).option("-C, --project-dir <dir>", "Project directory", process.cwd()).option("--publisher <name>", "Override the publisher (--overwrite only)").option("--dev", "Include assets under the source's dev_paths", false).option("--overwrite", "Discard curation and re-scan the full inventory", false).action((arg, opts) => runRebuild(arg, opts));
345
345
  manifest.command("verify <src>").description("Verify hashes, deps, and schema (read-only)").option("-C, --project-dir <dir>", "Project directory", process.cwd()).option("--strict", "Fail on advisory checks (warnings force a nonzero exit)", false).action((arg, opts) => runVerify(arg, opts));
346
346
  manifest.command("publish <src>").description("Push the curated sidecar manifest and publish it to the store").option("-C, --project-dir <dir>", "Project directory", process.cwd()).option("--as <namespace>", "Publisher namespace (default: your store username)").option("--sidecar-repo <url>", "Public GitHub repo you own to hold the curated manifest").option("--ref <gitref>", "Foreign source ref to ingest (branch/sha; default: main)").option("--dry-run", "Print the publish plan without pushing or calling the store", false).action(async (arg, opts) => {
347
- const { runPublish } = await import('./source-manifest-publish-ZIO24GUM.js');
347
+ const { runPublish } = await import('./source-manifest-publish-MJXCSUKT.js');
348
348
  await runPublish(arg, opts);
349
349
  });
350
350
  manifest.command("propose <src>").description("Open a PR to upstream with the sidecar manifest").action(() => notWired("propose"));
351
351
  manifest.command("yank <src>").description("Retract the source's published assets from the store").option("-C, --project-dir <dir>", "Project directory", process.cwd()).option("--asset <ref>", "Yank only the asset matching this ref/name").action(async (arg, opts) => {
352
- const { runYank } = await import('./source-manifest-publish-ZIO24GUM.js');
352
+ const { runYank } = await import('./source-manifest-publish-MJXCSUKT.js');
353
353
  await runYank(arg, opts);
354
354
  });
355
355
  }
@@ -998,5 +998,5 @@ function makeSourceCommand() {
998
998
  }
999
999
 
1000
1000
  export { autoSyncForSearch, divergedSourceClones, ensureClone, findCacheKeyCollision, indexingHadFailures, legacySourceConfigHint, localPathNotASource, makeSourceCommand, normalizeSourceUrl, pullSourceClone, readProjectSources, resolveSource, resolveSourceArg, restoreSourceReaders, sourceClonePath, sourceLabel, sourceMatchesKey, syncProjectSources };
1001
- //# sourceMappingURL=chunk-OHNNCXMB.js.map
1002
- //# sourceMappingURL=chunk-OHNNCXMB.js.map
1001
+ //# sourceMappingURL=chunk-DR5ZOEYI.js.map
1002
+ //# sourceMappingURL=chunk-DR5ZOEYI.js.map