backpack-ontology 0.2.10 → 0.2.12
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 +3 -3
- package/dist/bin/init.js +1 -4
- package/dist/bin/init.js.map +1 -1
- package/dist/core/hooks.js +1 -1
- package/dist/core/hooks.js.map +1 -1
- package/hooks/hooks.json +1 -14
- package/package.json +1 -3
- package/dist/bin/backpack-app.d.ts +0 -3
- package/dist/bin/backpack-app.d.ts.map +0 -1
- package/dist/bin/backpack-app.js +0 -37
- package/dist/bin/backpack-app.js.map +0 -1
- package/dist/bin/backpack-token.d.ts +0 -3
- package/dist/bin/backpack-token.d.ts.map +0 -1
- package/dist/bin/backpack-token.js +0 -32
- package/dist/bin/backpack-token.js.map +0 -1
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ No copy-pasting. No re-explaining. Your knowledge carries forward.
|
|
|
27
27
|
Sign up for a free account at [app.backpackontology.com](https://app.backpackontology.com), then add Backpack to Claude Code:
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
claude mcp add backpack-app -s user --
|
|
30
|
+
claude mcp add backpack-app -s user --transport sse https://app.backpackontology.com/mcp/sse
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
Your knowledge syncs across devices, you can share with your team, and you get access to the web-based graph visualizer. On first run, a browser window opens for sign-in. After that, it's automatic.
|
|
@@ -48,7 +48,7 @@ Already using Backpack Local and want to move to the cloud? One command uploads
|
|
|
48
48
|
|
|
49
49
|
> "Sync my backpack to the cloud"
|
|
50
50
|
|
|
51
|
-
Then
|
|
51
|
+
Then add the cloud MCP server and you're done.
|
|
52
52
|
|
|
53
53
|
## What to say to Claude
|
|
54
54
|
|
|
@@ -107,7 +107,7 @@ You have one backpack. It goes everywhere with you. Inside it, you organize know
|
|
|
107
107
|
| Command | What it does |
|
|
108
108
|
|---|---|
|
|
109
109
|
| `npx backpack-ontology@latest` | Start the Backpack Local MCP server |
|
|
110
|
-
| `
|
|
110
|
+
| `claude mcp add backpack-app ... --transport sse` | Connect to Backpack App cloud MCP |
|
|
111
111
|
| `npx -p backpack-ontology@latest backpack-sync` | Upload local ontologies to Backpack App |
|
|
112
112
|
| `npx backpack-viewer` | Open the graph visualizer (http://localhost:5173) |
|
|
113
113
|
| `npx -p backpack-ontology@latest backpack-init` | Reinstall auto-capture hooks if removed |
|
package/dist/bin/init.js
CHANGED
|
@@ -12,10 +12,7 @@ async function main() {
|
|
|
12
12
|
console.log(" Backpack hooks are installed.");
|
|
13
13
|
console.log("");
|
|
14
14
|
console.log(" What's enabled:");
|
|
15
|
-
console.log(" -
|
|
16
|
-
console.log(" and saves meaningful knowledge to your backpack.");
|
|
17
|
-
console.log(" - Viewer suggestions: after updates, you'll be reminded to");
|
|
18
|
-
console.log(" visualize your knowledge graph.");
|
|
15
|
+
console.log(" - Update notifications: confirms when your backpack is updated.");
|
|
19
16
|
console.log("");
|
|
20
17
|
console.log(" To disable, remove the backpack hooks from .claude/settings.json");
|
|
21
18
|
console.log("");
|
package/dist/bin/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;GAKG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,oBAAoB,EAAE,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;;;GAKG;AACH,KAAK,UAAU,IAAI;IACjB,MAAM,oBAAoB,EAAE,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/core/hooks.js
CHANGED
|
@@ -62,7 +62,7 @@ export async function ensureHooksInstalled() {
|
|
|
62
62
|
return;
|
|
63
63
|
settings.hooks = existingHooks;
|
|
64
64
|
await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2) + "\n", "utf-8");
|
|
65
|
-
console.error("Backpack hooks enabled (
|
|
65
|
+
console.error("Backpack hooks enabled (update notifications). " +
|
|
66
66
|
"To disable, remove backpack hooks from .claude/settings.json");
|
|
67
67
|
}
|
|
68
68
|
//# sourceMappingURL=hooks.js.map
|
package/dist/core/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/core/hooks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/core/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiBzC,8EAA8E;AAC9E,SAAS,eAAe,CAAC,KAAiB;IACxC,OAAO,KAAK,CAAC,IAAI,CACf,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,KAAK,EAAE,IAAI,CACX,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAChD,IAAI,KAAK,CACb,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAE3D,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAEpE,IAAI,WAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACtD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,0CAA0C;IACpD,CAAC;IAED,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,IAAI,QAAQ,GAAiB,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACrD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACpB,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAgC,CAAC;IAChE,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;IAEtE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,IACE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACvB,eAAe,CAAC,QAAsB,CAAC,EACvC,CAAC;gBACD,SAAS,CAAC,oBAAoB;YAChC,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;gBAC/C,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO;QAAE,OAAO;IAErB,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC;IAC/B,MAAM,EAAE,CAAC,SAAS,CAChB,YAAY,EACZ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EACxC,OAAO,CACR,CAAC;IAEF,OAAO,CAAC,KAAK,CACX,iDAAiD;QAC/C,8DAA8D,CACjE,CAAC;AACJ,CAAC"}
|
package/hooks/hooks.json
CHANGED
|
@@ -1,25 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"hooks": {
|
|
3
|
-
"Stop": [
|
|
4
|
-
{
|
|
5
|
-
"matcher": "",
|
|
6
|
-
"hooks": [
|
|
7
|
-
{
|
|
8
|
-
"type": "agent",
|
|
9
|
-
"prompt": "You are a knowledge-capture agent for Backpack. The user has one backpack — it carries all their knowledge. Inside it are ontologies, each one a knowledge graph about a different topic.\n\nReview the conversation that just happened and decide whether meaningful knowledge should be saved to the backpack.\n\n## What to capture\n- Business knowledge: client details, vendor info, pricing, partnerships, workflows\n- Technical knowledge: architecture, APIs, data flows, integrations, design decisions\n- Domain knowledge: industry concepts, terminology, regulations, best practices\n- Operational knowledge: decisions made, problems solved, processes established, conventions\n- Relationships: how people, systems, concepts, or processes connect\n\n## What to skip\n- Simple Q&A with no lasting value\n- Debugging that led nowhere\n- Casual conversation or greetings\n- Knowledge already in the backpack from a previous pass\n- Temporary or in-progress state\n\n## If there IS something worth capturing\n1. Call `backpack_list` to see what's already in the backpack\n2. Call `backpack_describe` on relevant ontologies to check existing content\n3. Decide: add to an existing ontology (if topic fits) or create a new one in the backpack (if distinct)\n4. Use `backpack_import_nodes` for bulk item creation\n5. Use `backpack_add_edge` to create relationships\n6. Use clear types for items (Person, Company, API, Decision, Process, Concept, Tool, Service) and relationships (WORKS_WITH, DEPENDS_ON, DECIDED_TO, MANAGES, IMPLEMENTS, RELATES_TO)\n\n## If NOTHING is worth capturing, just stop.\n\n## After updates, tell the user:\n\"Added [brief summary] to your backpack. View it by running `npx backpack-viewer` (http://localhost:5173)\"",
|
|
10
|
-
"timeout": 120,
|
|
11
|
-
"async": true
|
|
12
|
-
}
|
|
13
|
-
]
|
|
14
|
-
}
|
|
15
|
-
],
|
|
16
3
|
"PostToolUse": [
|
|
17
4
|
{
|
|
18
5
|
"matcher": "backpack_create|backpack_add_node|backpack_update_node|backpack_import_nodes|backpack_add_edge",
|
|
19
6
|
"hooks": [
|
|
20
7
|
{
|
|
21
8
|
"type": "command",
|
|
22
|
-
"command": "echo '
|
|
9
|
+
"command": "echo 'Backpack updated.'",
|
|
23
10
|
"timeout": 5
|
|
24
11
|
}
|
|
25
12
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "backpack-ontology",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"description": "A persistent ontology engine for Claude Code via MCP — progressive discovery of structured knowledge graphs",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Noah Irzinger",
|
|
@@ -8,10 +8,8 @@
|
|
|
8
8
|
"bin": {
|
|
9
9
|
"backpack-ontology": "./dist/bin/backpack.js",
|
|
10
10
|
"backpack-local": "./dist/bin/backpack.js",
|
|
11
|
-
"backpack-app": "./dist/bin/backpack-app.js",
|
|
12
11
|
"backpack-sync": "./dist/bin/backpack-sync.js",
|
|
13
12
|
"backpack-init": "./dist/bin/init.js",
|
|
14
|
-
"backpack-token": "./dist/bin/backpack-token.js",
|
|
15
13
|
"backpack": "./dist/bin/backpack.js"
|
|
16
14
|
},
|
|
17
15
|
"main": "./dist/index.js",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backpack-app.d.ts","sourceRoot":"","sources":["../../src/bin/backpack-app.ts"],"names":[],"mappings":""}
|
package/dist/bin/backpack-app.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
|
-
import { createMcpServer } from "../mcp/server.js";
|
|
4
|
-
import { ensureHooksInstalled } from "../core/hooks.js";
|
|
5
|
-
import { shutdown as shutdownTelemetry } from "../core/telemetry.js";
|
|
6
|
-
// Production defaults — users never need to configure these.
|
|
7
|
-
// Env vars override for development/testing only.
|
|
8
|
-
const DEFAULTS = {
|
|
9
|
-
url: "https://app.backpackontology.com",
|
|
10
|
-
clientId: "2d84f4b4-0c8c-4eb5-8f26-4dabc7f07551",
|
|
11
|
-
issuerUrl: "https://8522cad6-89da-465d-ad30-7c1ac03c52c7.ciamlogin.com/8522cad6-89da-465d-ad30-7c1ac03c52c7/v2.0",
|
|
12
|
-
};
|
|
13
|
-
async function main() {
|
|
14
|
-
// Install hooks on first run (silent, non-blocking)
|
|
15
|
-
ensureHooksInstalled().catch(() => { });
|
|
16
|
-
const apiUrl = process.env.BACKPACK_APP_URL || DEFAULTS.url;
|
|
17
|
-
const clientId = process.env.BACKPACK_APP_CLIENT_ID || DEFAULTS.clientId;
|
|
18
|
-
const issuerUrl = process.env.BACKPACK_APP_ISSUER_URL || DEFAULTS.issuerUrl;
|
|
19
|
-
const staticToken = process.env.BACKPACK_APP_TOKEN;
|
|
20
|
-
const server = await createMcpServer(staticToken
|
|
21
|
-
? { mode: "app", url: apiUrl, token: staticToken }
|
|
22
|
-
: { mode: "app", url: apiUrl, clientId, issuerUrl });
|
|
23
|
-
const transport = new StdioServerTransport();
|
|
24
|
-
await server.connect(transport);
|
|
25
|
-
console.error(`Backpack App MCP server running on stdio (${apiUrl})`);
|
|
26
|
-
}
|
|
27
|
-
async function gracefulShutdown() {
|
|
28
|
-
await shutdownTelemetry();
|
|
29
|
-
process.exit(0);
|
|
30
|
-
}
|
|
31
|
-
process.on("SIGINT", gracefulShutdown);
|
|
32
|
-
process.on("SIGTERM", gracefulShutdown);
|
|
33
|
-
main().catch((error) => {
|
|
34
|
-
console.error("Fatal error:", error);
|
|
35
|
-
process.exit(1);
|
|
36
|
-
});
|
|
37
|
-
//# sourceMappingURL=backpack-app.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backpack-app.js","sourceRoot":"","sources":["../../src/bin/backpack-app.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAErE,6DAA6D;AAC7D,kDAAkD;AAClD,MAAM,QAAQ,GAAG;IACf,GAAG,EAAE,kCAAkC;IACvC,QAAQ,EAAE,sCAAsC;IAChD,SAAS,EAAE,sGAAsG;CAClH,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,oDAAoD;IACpD,oBAAoB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,QAAQ,CAAC,GAAG,CAAC;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,QAAQ,CAAC,QAAQ,CAAC;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,QAAQ,CAAC,SAAS,CAAC;IAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,eAAe,CAClC,WAAW;QACT,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE;QAClD,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CACtD,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,6CAA6C,MAAM,GAAG,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,MAAM,iBAAiB,EAAE,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACvC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAExC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backpack-token.d.ts","sourceRoot":"","sources":["../../src/bin/backpack-token.ts"],"names":[],"mappings":""}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { OAuthClient } from "../auth/oauth.js";
|
|
3
|
-
const DEFAULTS = {
|
|
4
|
-
clientId: "2d84f4b4-0c8c-4eb5-8f26-4dabc7f07551",
|
|
5
|
-
issuerUrl: "https://8522cad6-89da-465d-ad30-7c1ac03c52c7.ciamlogin.com/8522cad6-89da-465d-ad30-7c1ac03c52c7/v2.0",
|
|
6
|
-
};
|
|
7
|
-
async function main() {
|
|
8
|
-
const clientId = process.env.BACKPACK_APP_CLIENT_ID || DEFAULTS.clientId;
|
|
9
|
-
const issuerUrl = process.env.BACKPACK_APP_ISSUER_URL || DEFAULTS.issuerUrl;
|
|
10
|
-
const url = process.env.BACKPACK_APP_URL || "https://app.backpackontology.com";
|
|
11
|
-
// Static token override
|
|
12
|
-
const staticToken = process.env.BACKPACK_APP_TOKEN;
|
|
13
|
-
if (staticToken) {
|
|
14
|
-
process.stdout.write(`Authorization: Bearer ${staticToken}\n`);
|
|
15
|
-
process.exit(0);
|
|
16
|
-
}
|
|
17
|
-
// Use OAuth client with same cache key as backpack-app
|
|
18
|
-
const crypto = await import("node:crypto");
|
|
19
|
-
const cacheKey = crypto
|
|
20
|
-
.createHash("sha256")
|
|
21
|
-
.update(url)
|
|
22
|
-
.digest("hex")
|
|
23
|
-
.slice(0, 12);
|
|
24
|
-
const oauth = new OAuthClient(clientId, issuerUrl, cacheKey);
|
|
25
|
-
const token = await oauth.getAccessToken();
|
|
26
|
-
process.stdout.write(`Authorization: Bearer ${token}\n`);
|
|
27
|
-
}
|
|
28
|
-
main().catch((err) => {
|
|
29
|
-
console.error("Failed to get token:", err.message);
|
|
30
|
-
process.exit(1);
|
|
31
|
-
});
|
|
32
|
-
//# sourceMappingURL=backpack-token.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"backpack-token.js","sourceRoot":"","sources":["../../src/bin/backpack-token.ts"],"names":[],"mappings":";AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,sCAAsC;IAChD,SAAS,EACP,sGAAsG;CACzG,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,QAAQ,CAAC,QAAQ,CAAC;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,QAAQ,CAAC,SAAS,CAAC;IAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,kCAAkC,CAAC;IAE/E,wBAAwB;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACnD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,WAAW,IAAI,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uDAAuD;IACvD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM;SACpB,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,GAAG,CAAC;SACX,MAAM,CAAC,KAAK,CAAC;SACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;IAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,IAAI,CAAC,CAAC;AAC3D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|