@pi-orca/core 0.0.2-dev.20260414093420 → 0.0.2-dev.20260422150519
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 +19 -0
- package/dist/utils/autocomplete.d.ts.map +1 -1
- package/dist/utils/autocomplete.js +7 -6
- package/dist/utils/autocomplete.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/settings.d.ts +20 -0
- package/dist/utils/settings.d.ts.map +1 -0
- package/dist/utils/settings.js +40 -0
- package/dist/utils/settings.js.map +1 -0
- package/dist/utils/tool-result.d.ts +14 -0
- package/dist/utils/tool-result.d.ts.map +1 -0
- package/dist/utils/tool-result.js +13 -0
- package/dist/utils/tool-result.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ License: MIT
|
|
|
18
18
|
- **DAG Utilities** — Cycle detection and transitive dependency walking for task graphs
|
|
19
19
|
- **Heartbeat System** — Periodic status file writes with cost tracking
|
|
20
20
|
- **Duration Parsing** — Human-readable duration strings (`30s`, `5m`, `2h`, `7d`)
|
|
21
|
+
- **Settings I/O** — Atomic read/write of `~/.pi/agent/settings.json` shared across extensions
|
|
21
22
|
|
|
22
23
|
## Installation
|
|
23
24
|
|
|
@@ -172,6 +173,23 @@ const userDir = getUserOrcaDir(); // ~/.pi/agent/orca/
|
|
|
172
173
|
const projectDir = getProjectOrcaDir(); // <project>/.pi/orca/
|
|
173
174
|
```
|
|
174
175
|
|
|
176
|
+
### Settings I/O
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
import { getPiSettingsPath, readPiSettings, writePiSettings } from "@pi-orca/core";
|
|
180
|
+
|
|
181
|
+
// Read current settings (returns {} if missing/unparseable)
|
|
182
|
+
const settings = await readPiSettings();
|
|
183
|
+
|
|
184
|
+
// Patch and write back atomically
|
|
185
|
+
settings.defaultProvider = "my-provider";
|
|
186
|
+
settings.defaultModel = "my-model";
|
|
187
|
+
await writePiSettings(settings);
|
|
188
|
+
|
|
189
|
+
// Override path for tests via PI_SETTINGS_PATH env var
|
|
190
|
+
const path = getPiSettingsPath(); // ~/.pi/agent/settings.json
|
|
191
|
+
```
|
|
192
|
+
|
|
175
193
|
## API Documentation
|
|
176
194
|
|
|
177
195
|
### Types
|
|
@@ -196,6 +214,7 @@ const projectDir = getProjectOrcaDir(); // <project>/.pi/orca/
|
|
|
196
214
|
- **Process**: `isPidAlive()`, `getCurrentPid()`
|
|
197
215
|
- **DAG**: `detectCycle()`, `getTransitiveDependents()`, `getTransitiveDependencies()`
|
|
198
216
|
- **Heartbeat**: `createHeartbeat()`
|
|
217
|
+
- **Settings**: `getPiSettingsPath()`, `readPiSettings()`, `writePiSettings()`
|
|
199
218
|
|
|
200
219
|
## Development
|
|
201
220
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/utils/autocomplete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,cAAc,EAAE,CAAC;IACtC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC3C;AA4BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,cAAc,GACnB,cAAc,EAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/utils/autocomplete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,cAAc,EAAE,CAAC;IACtC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC3C;AA4BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,cAAc,GACnB,cAAc,EAAE,GAAG,IAAI,CA0EzB"}
|
|
@@ -88,11 +88,12 @@ export function resolveCompletions(prefix, tree) {
|
|
|
88
88
|
return null;
|
|
89
89
|
// Substring filter across value, label, and description
|
|
90
90
|
const lowerFilter = filter.toLowerCase();
|
|
91
|
-
const filtered = lowerFilter
|
|
92
|
-
? rawItems.filter((item) => item.value
|
|
93
|
-
item.
|
|
94
|
-
|
|
95
|
-
|
|
91
|
+
const filtered = (lowerFilter
|
|
92
|
+
? rawItems.filter((item) => typeof item.value === "string" &&
|
|
93
|
+
(item.value.toLowerCase().includes(lowerFilter) ||
|
|
94
|
+
item.label.toLowerCase().includes(lowerFilter) ||
|
|
95
|
+
(item.description?.toLowerCase().includes(lowerFilter) ?? false)))
|
|
96
|
+
: rawItems.filter((item) => typeof item.value === "string"));
|
|
96
97
|
if (filtered.length === 0)
|
|
97
98
|
return null;
|
|
98
99
|
// Reconstruct values with full prefix and optional trailing space
|
|
@@ -102,7 +103,7 @@ export function resolveCompletions(prefix, tree) {
|
|
|
102
103
|
const childNode = findChild(current, item.value);
|
|
103
104
|
const trailingSpace = childNode && isCompletable(childNode) ? " " : "";
|
|
104
105
|
return {
|
|
105
|
-
value: tokenPrefix + item.value + trailingSpace,
|
|
106
|
+
value: String(tokenPrefix + item.value + trailingSpace),
|
|
106
107
|
label: item.label,
|
|
107
108
|
description: item.description,
|
|
108
109
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../src/utils/autocomplete.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAqBH,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,aAAa,CAAC,IAAoB;IACzC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAChB,IAAoB,EACpB,KAAa;IAEb,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,+EAA+E;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,IAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO;QACpB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,EAAE,CAAC;IAEP,sEAAsE;IACtE,yDAAyD;IACzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAEpE,2DAA2D;IAC3D,IAAI,eAAyB,CAAC;IAC9B,IAAI,MAAc,CAAC;IAEnB,IAAI,gBAAgB,EAAE,CAAC;QACrB,eAAe,GAAG,MAAM,CAAC;QACzB,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,eAAe,GAAG,EAAE,CAAC;QACrB,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,yCAAyC;IACzC,IAAI,OAAO,GAAmB,IAAI,CAAC;IACnC,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,CAAC,eAAe;QACxC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,GAAG,KAAK,CAAC;IAClB,CAAC;IAED,0CAA0C;IAC1C,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAElC,iDAAiD;IACjD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IACjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvC,wDAAwD;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../../src/utils/autocomplete.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
package/dist/utils/index.js
CHANGED
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pi agent settings.json read/write utilities.
|
|
3
|
+
* Shared by extensions that need to read or patch settings.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Path to ~/.pi/agent/settings.json.
|
|
7
|
+
* Override with PI_SETTINGS_PATH env var (used by tests).
|
|
8
|
+
*/
|
|
9
|
+
export declare function getPiSettingsPath(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Read and parse ~/.pi/agent/settings.json.
|
|
12
|
+
* Returns empty object if the file doesn't exist or is unparseable.
|
|
13
|
+
*/
|
|
14
|
+
export declare function readPiSettings(): Promise<Record<string, any>>;
|
|
15
|
+
/**
|
|
16
|
+
* Write settings.json atomically via tmp+rename.
|
|
17
|
+
* Caller is responsible for merging — this writes the full object.
|
|
18
|
+
*/
|
|
19
|
+
export declare function writePiSettings(settings: Record<string, any>): Promise<void>;
|
|
20
|
+
//# sourceMappingURL=settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/utils/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAED;;;GAGG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAOnE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pi agent settings.json read/write utilities.
|
|
3
|
+
* Shared by extensions that need to read or patch settings.
|
|
4
|
+
*/
|
|
5
|
+
import { readFile } from "fs/promises";
|
|
6
|
+
import { join } from "path";
|
|
7
|
+
import { getUserOrcaDir } from "./path.js";
|
|
8
|
+
import { atomicWrite } from "./filesystem.js";
|
|
9
|
+
/**
|
|
10
|
+
* Path to ~/.pi/agent/settings.json.
|
|
11
|
+
* Override with PI_SETTINGS_PATH env var (used by tests).
|
|
12
|
+
*/
|
|
13
|
+
export function getPiSettingsPath() {
|
|
14
|
+
if (process.env["PI_SETTINGS_PATH"]) {
|
|
15
|
+
return process.env["PI_SETTINGS_PATH"];
|
|
16
|
+
}
|
|
17
|
+
// getUserOrcaDir() → ~/.pi/agent/orca → parent is ~/.pi/agent
|
|
18
|
+
return join(getUserOrcaDir(), "..", "settings.json");
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Read and parse ~/.pi/agent/settings.json.
|
|
22
|
+
* Returns empty object if the file doesn't exist or is unparseable.
|
|
23
|
+
*/
|
|
24
|
+
export async function readPiSettings() {
|
|
25
|
+
try {
|
|
26
|
+
const content = await readFile(getPiSettingsPath(), "utf-8");
|
|
27
|
+
return JSON.parse(content);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return {};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Write settings.json atomically via tmp+rename.
|
|
35
|
+
* Caller is responsible for merging — this writes the full object.
|
|
36
|
+
*/
|
|
37
|
+
export async function writePiSettings(settings) {
|
|
38
|
+
await atomicWrite(getPiSettingsPath(), JSON.stringify(settings, null, 2) + "\n");
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/utils/settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACzC,CAAC;IACD,gEAAgE;IAChE,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAA6B;IAE7B,MAAM,WAAW,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a plain result object into the AgentToolResult format
|
|
3
|
+
* expected by the pi-coding-agent runtime.
|
|
4
|
+
*
|
|
5
|
+
* Tools must return { content: [...], details: T }, not plain objects.
|
|
6
|
+
*/
|
|
7
|
+
export declare function wrapToolResult<T extends Record<string, unknown>>(result: T): {
|
|
8
|
+
content: {
|
|
9
|
+
type: "text";
|
|
10
|
+
text: string;
|
|
11
|
+
}[];
|
|
12
|
+
details: T;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=tool-result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-result.d.ts","sourceRoot":"","sources":["../../src/utils/tool-result.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,MAAM,EAAE,CAAC,GACR;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,CAK3D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps a plain result object into the AgentToolResult format
|
|
3
|
+
* expected by the pi-coding-agent runtime.
|
|
4
|
+
*
|
|
5
|
+
* Tools must return { content: [...], details: T }, not plain objects.
|
|
6
|
+
*/
|
|
7
|
+
export function wrapToolResult(result) {
|
|
8
|
+
return {
|
|
9
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
10
|
+
details: result,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=tool-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-result.js","sourceRoot":"","sources":["../../src/utils/tool-result.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAS;IAET,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAE,MAAM;KAChB,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-orca/core",
|
|
3
|
-
"version": "0.0.2-dev.
|
|
3
|
+
"version": "0.0.2-dev.20260422150519",
|
|
4
4
|
"description": "Shared types and utilities for Pi Orca extension suite",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"repository": {
|
|
37
37
|
"type": "git",
|
|
38
38
|
"url": "https://github.com/bwavell/pi-orca.git",
|
|
39
|
-
"directory": "packages/
|
|
39
|
+
"directory": "packages/core"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"yaml": "^2.4.0"
|