@drawcall/market 0.6.2 → 0.6.3

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
@@ -72,23 +72,21 @@ Each `AssetSearchResult` is:
72
72
  updatedAt: Date
73
73
  latestVersion: string // semver of the latest published version
74
74
  approved: boolean
75
- npmDependencies: string // JSON-encoded Record<string, string>
76
- assetDependencies: string // JSON-encoded Record<string, string>
77
- skillDependencies: string // JSON-encoded Record<string, string>
75
+ npmDependencies: Record<string, string>
76
+ assetDependencies: AssetDependencies // range string or { version, alias } per entry
77
+ skillDependencies: Record<string, string>
78
78
  previewUrl: string | null // image URL for an <img>, or null
79
79
  }
80
80
  ```
81
81
 
82
- The three `*Dependencies` fields are JSON strings (parse with `JSON.parse`); everything else is ready to use.
83
-
84
82
  ### Previews
85
83
 
86
84
  `previewUrl` is the fetch-ready image URL for a result, or `null` for types without a preview (only `model`, `humanoid-model`, `texture`, `environment`, and `flipbook` have one). Drop it straight into an `<img src>`; private and unapproved results already carry the capability when the caller is entitled to see them:
87
85
 
88
86
  ```ts
89
- import { createMarketClient } from '@drawcall/market'
87
+ import { v1 } from '@drawcall/market'
90
88
 
91
- const client = createMarketClient()
89
+ const client = v1.createClient()
92
90
  const { items } = await client.asset.search({
93
91
  query: 'robot',
94
92
  type: 'model',
@@ -111,9 +109,9 @@ The runnable Market frontend renders results immediately and lets the browser lo
111
109
  Resolve a set of assets (and their transitive asset/npm/skill dependencies) to a concrete, installable plan. The CLI and any server-side caller share this resolver:
112
110
 
113
111
  ```ts
114
- import { createMarketClient, resolve } from '@drawcall/market'
112
+ import { v1, resolve } from '@drawcall/market'
115
113
 
116
- const client = createMarketClient()
114
+ const client = v1.createClient()
117
115
  const plan = await resolve(client.asset, [{ name: 'my-model', range: '^1.0.0' }])
118
116
 
119
117
  plan.assets // resolved name@version per asset (with its type)
@@ -122,15 +120,17 @@ plan.skillDependencies // merged skill sources
122
120
  ```
123
121
 
124
122
  The Node-only filesystem APIs are available from `@drawcall/market/install`. `install` downloads and
125
- writes resolved assets; `listInstalledAssets` reads the nearest project's offline lock inventory;
126
- `getCliClient` uses `DRAWCALL_AUTH_TOKEN` or the saved Market login when private assets must resolve.
123
+ writes resolved assets; `listInstalledAssets` reads the declared `assetDependencies` (name, range,
124
+ aliases) from the nearest `package.json`; `getCliClient` uses `DRAWCALL_AUTH_TOKEN` or the saved
125
+ Market login when private assets must resolve.
127
126
 
128
127
  ```ts
129
128
  import { getCliClient, listInstalledAssets } from '@drawcall/market/install'
130
129
 
131
130
  const { assets } = await listInstalledAssets(process.cwd())
132
131
  const { client } = await getCliClient()
133
- const index = await client.asset.files({ name: assets[0].name, version: assets[0].version })
132
+ const plan = await resolve(client.asset, assets.map(({ name, range }) => ({ name, range })))
133
+ const index = await client.asset.files({ name: plan.assets[0].name, version: plan.assets[0].version })
134
134
  await fetch(index.files[0].url)
135
135
  ```
136
136
 
@@ -152,6 +152,6 @@ Reads (`types`, `install`, `list`, `search`, `preview`) work without auth; `pack
152
152
 
153
153
  `pack` creates the same asset zip that `upload` sends. It runs offline, infers template packing from a root `package.json`, and accepts `--type` only when you need to override that inference. `upload` calls the shared pack step internally, then publishes.
154
154
 
155
- `list` is an offline local inventory command. It reads `.drawcall/market-lock.json` from the nearest package root and prints exact installed asset names, versions, and types. Add `--files` for installed file paths.
155
+ `list` is an offline local inventory command. It reads `assetDependencies` from the nearest `package.json` and prints each declared asset with its range and file aliases.
156
156
 
157
157
  Run `npx @drawcall/market skill` to print the agent workflow guidance, or `npx @drawcall/market --help` for the full command list.
@@ -1,4 +1,9 @@
1
- export declare const PROJECT_INSTALL_LOCK_PATH = ".drawcall/market-install.lock";
1
+ /**
2
+ * The install mutex is per-machine (staleness is judged by pid + hostname), so it lives in the OS
3
+ * temp dir keyed by the project root — never inside the project, where it could leak into packs
4
+ * or version control.
5
+ */
6
+ export declare function projectInstallLockPath(projectRoot: string): string;
2
7
  export interface ProjectInstallLockOptions {
3
8
  timeoutMs?: number;
4
9
  retryDelayMs?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"install-lock.d.ts","sourceRoot":"","sources":["../src/install-lock.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,kCAAkC,CAAA;AAqBxE,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,CAAC,CAAC,CASZ"}
1
+ {"version":3,"file":"install-lock.d.ts","sourceRoot":"","sources":["../src/install-lock.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGlE;AAqBD,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,CAAC,CAAC,CASZ"}
@@ -1,14 +1,22 @@
1
- import { randomUUID } from 'node:crypto';
1
+ import { createHash, randomUUID } from 'node:crypto';
2
2
  import * as fs from 'node:fs/promises';
3
- import { hostname } from 'node:os';
3
+ import { hostname, tmpdir } from 'node:os';
4
4
  import * as path from 'node:path';
5
- export const PROJECT_INSTALL_LOCK_PATH = '.drawcall/market-install.lock';
5
+ /**
6
+ * The install mutex is per-machine (staleness is judged by pid + hostname), so it lives in the OS
7
+ * temp dir keyed by the project root — never inside the project, where it could leak into packs
8
+ * or version control.
9
+ */
10
+ export function projectInstallLockPath(projectRoot) {
11
+ const key = createHash('sha256').update(path.resolve(projectRoot)).digest('hex').slice(0, 16);
12
+ return path.join(tmpdir(), `drawcall-market-install-${key}.lock`);
13
+ }
6
14
  const OWNER_FILE = 'owner.json';
7
15
  const DEFAULT_TIMEOUT_MS = 30_000;
8
16
  const DEFAULT_RETRY_DELAY_MS = 50;
9
17
  const DEFAULT_STALE_MS = 5 * 60_000;
10
18
  export async function withProjectInstallLock(projectRoot, task, options = {}) {
11
- const lockPath = path.join(projectRoot, PROJECT_INSTALL_LOCK_PATH);
19
+ const lockPath = projectInstallLockPath(projectRoot);
12
20
  const owner = await acquireLock(lockPath, options);
13
21
  try {
14
22
  return await task();
@@ -1 +1 @@
1
- {"version":3,"file":"install-lock.js","sourceRoot":"","sources":["../src/install-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-lock.js","sourceRoot":"","sources":["../src/install-lock.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-walk.d.ts","sourceRoot":"","sources":["../src/project-walk.ts"],"names":[],"mappings":"AAOA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,eAAO,MAAM,kBAAkB,eAAe,CAAA;AAK9C,eAAO,MAAM,mBAAmB,aAAiD,CAAA;AAEjF,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;CAClC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAQhF;AAED;0BAC0B;AAC1B,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+B9C;AAED,wFAAwF;AACxF,wBAAsB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlF"}
1
+ {"version":3,"file":"project-walk.d.ts","sourceRoot":"","sources":["../src/project-walk.ts"],"names":[],"mappings":"AAOA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,eAAO,MAAM,kBAAkB,eAAe,CAAA;AAI9C,eAAO,MAAM,mBAAmB,aAAoC,CAAA;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;CAClC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAQhF;AAED;0BAC0B;AAC1B,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+B9C;AAED,wFAAwF;AACxF,wBAAsB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlF"}
@@ -1,16 +1,15 @@
1
1
  /**
2
2
  * Directory walking with git semantics, shared by pack/sync (dependency-layout resolution) and
3
3
  * install (rename adoption): each directory's `.gitignore` governs its own subtree, an ignored
4
- * directory is pruned without entering it, and `.git`/`node_modules`/`.drawcall` never count.
4
+ * directory is pruned without entering it, and `.git`/`node_modules` never count.
5
5
  */
6
6
  import * as fs from 'fs/promises';
7
7
  import * as path from 'path';
8
8
  import ignore from 'ignore';
9
9
  export const GITIGNORE_FILENAME = '.gitignore';
10
- // Directories that never belong in a published asset — VCS/tooling metadata, reinstallable
11
- // dependencies, and the market's own state dir (`.drawcall`, holding the install mutex). Excluded
12
- // structurally in every walk, regardless of any `.gitignore`.
13
- export const ALWAYS_IGNORED_DIRS = new Set(['.git', 'node_modules', '.drawcall']);
10
+ // Directories that never belong in a published asset — VCS metadata and reinstallable
11
+ // dependencies. Excluded structurally in every walk, regardless of any `.gitignore`.
12
+ export const ALWAYS_IGNORED_DIRS = new Set(['.git', 'node_modules']);
14
13
  export function isGitignored(name, matchers) {
15
14
  // Directory candidates carry a trailing slash; the `ignore` lib matches directory patterns
16
15
  // (`dist/`) against exactly that form, so the path is passed through unchanged.
@@ -1 +1 @@
1
- {"version":3,"file":"project-walk.js","sourceRoot":"","sources":["../src/project-walk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-walk.js","sourceRoot":"","sources":["../src/project-walk.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drawcall/market",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/drawcall-ai/market",
@@ -27,7 +27,7 @@
27
27
  "market": "./dist/cli.js"
28
28
  },
29
29
  "scripts": {
30
- "build": "tsc",
30
+ "build": "rm -rf dist && tsc",
31
31
  "prepack": "npm run build && node scripts/prepare-publish.mjs",
32
32
  "dev": "tsx src/cli.ts",
33
33
  "test": "tsx --test tests/*.test.ts",
@@ -1,9 +1,17 @@
1
- import { randomUUID } from 'node:crypto'
1
+ import { createHash, randomUUID } from 'node:crypto'
2
2
  import * as fs from 'node:fs/promises'
3
- import { hostname } from 'node:os'
3
+ import { hostname, tmpdir } from 'node:os'
4
4
  import * as path from 'node:path'
5
5
 
6
- export const PROJECT_INSTALL_LOCK_PATH = '.drawcall/market-install.lock'
6
+ /**
7
+ * The install mutex is per-machine (staleness is judged by pid + hostname), so it lives in the OS
8
+ * temp dir keyed by the project root — never inside the project, where it could leak into packs
9
+ * or version control.
10
+ */
11
+ export function projectInstallLockPath(projectRoot: string): string {
12
+ const key = createHash('sha256').update(path.resolve(projectRoot)).digest('hex').slice(0, 16)
13
+ return path.join(tmpdir(), `drawcall-market-install-${key}.lock`)
14
+ }
7
15
 
8
16
  const OWNER_FILE = 'owner.json'
9
17
  const DEFAULT_TIMEOUT_MS = 30_000
@@ -35,7 +43,7 @@ export async function withProjectInstallLock<T>(
35
43
  task: () => Promise<T>,
36
44
  options: ProjectInstallLockOptions = {},
37
45
  ): Promise<T> {
38
- const lockPath = path.join(projectRoot, PROJECT_INSTALL_LOCK_PATH)
46
+ const lockPath = projectInstallLockPath(projectRoot)
39
47
  const owner = await acquireLock(lockPath, options)
40
48
 
41
49
  try {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Directory walking with git semantics, shared by pack/sync (dependency-layout resolution) and
3
3
  * install (rename adoption): each directory's `.gitignore` governs its own subtree, an ignored
4
- * directory is pruned without entering it, and `.git`/`node_modules`/`.drawcall` never count.
4
+ * directory is pruned without entering it, and `.git`/`node_modules` never count.
5
5
  */
6
6
  import * as fs from 'fs/promises'
7
7
  import * as path from 'path'
@@ -9,10 +9,9 @@ import ignore from 'ignore'
9
9
 
10
10
  export const GITIGNORE_FILENAME = '.gitignore'
11
11
 
12
- // Directories that never belong in a published asset — VCS/tooling metadata, reinstallable
13
- // dependencies, and the market's own state dir (`.drawcall`, holding the install mutex). Excluded
14
- // structurally in every walk, regardless of any `.gitignore`.
15
- export const ALWAYS_IGNORED_DIRS = new Set(['.git', 'node_modules', '.drawcall'])
12
+ // Directories that never belong in a published asset — VCS metadata and reinstallable
13
+ // dependencies. Excluded structurally in every walk, regardless of any `.gitignore`.
14
+ export const ALWAYS_IGNORED_DIRS = new Set(['.git', 'node_modules'])
16
15
 
17
16
  export interface GitignoreMatcher {
18
17
  /** Directory the `.gitignore` governs: '' for the root, or e.g. 'sub/'. */