forkit-ai-footprints 0.2.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 (150) hide show
  1. package/LICENSE +21 -0
  2. package/PRIVACY.md +150 -0
  3. package/README.md +313 -0
  4. package/STATUS.md +136 -0
  5. package/dist/agents.d.ts +22 -0
  6. package/dist/agents.js +281 -0
  7. package/dist/aggregate.d.ts +28 -0
  8. package/dist/aggregate.js +151 -0
  9. package/dist/assets/forkit-icon-dark.png +0 -0
  10. package/dist/assets/forkit-icon-light.png +0 -0
  11. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Info.plist +5 -0
  12. package/dist/bootstrap/Forkit AI Footprint.app/Contents/MacOS/Forkit AI Footprint +0 -0
  13. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/ForkitAIFootprint.icns +0 -0
  14. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/ForkitStatusTemplate.png +0 -0
  15. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/agents.d.ts +22 -0
  16. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/agents.js +281 -0
  17. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/aggregate.d.ts +28 -0
  18. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/aggregate.js +151 -0
  19. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/assets/forkit-icon-dark.png +0 -0
  20. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/assets/forkit-icon-light.png +0 -0
  21. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/census.d.ts +3 -0
  22. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/census.js +196 -0
  23. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/cli.d.ts +32 -0
  24. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/cli.js +404 -0
  25. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/doctor.d.ts +14 -0
  26. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/doctor.js +71 -0
  27. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/endpoints.d.ts +8 -0
  28. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/endpoints.js +45 -0
  29. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/evaluate.d.ts +44 -0
  30. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/evaluate.js +102 -0
  31. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/filesystem.d.ts +11 -0
  32. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/filesystem.js +226 -0
  33. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/format.d.ts +7 -0
  34. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/format.js +78 -0
  35. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/hash.d.ts +4 -0
  36. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/hash.js +16 -0
  37. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/index.d.ts +22 -0
  38. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/index.js +58 -0
  39. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/insights.d.ts +13 -0
  40. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/insights.js +76 -0
  41. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/local-device.d.ts +19 -0
  42. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/local-device.js +81 -0
  43. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/locales.json +272 -0
  44. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/localization.d.ts +277 -0
  45. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/localization.js +55 -0
  46. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/mcp.d.ts +9 -0
  47. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/mcp.js +93 -0
  48. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/monitor.d.ts +99 -0
  49. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/monitor.js +285 -0
  50. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/base.d.ts +34 -0
  51. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/base.js +88 -0
  52. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/index.d.ts +6 -0
  53. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/index.js +24 -0
  54. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/lmstudio.d.ts +9 -0
  55. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/lmstudio.js +71 -0
  56. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/ollama.d.ts +12 -0
  57. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/ollama.js +171 -0
  58. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/openai-compatible.d.ts +10 -0
  59. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/openai-compatible.js +68 -0
  60. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/resource-evidence.d.ts +17 -0
  61. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/resource-evidence.js +52 -0
  62. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/runtime-activity.d.ts +5 -0
  63. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/runtime-activity.js +66 -0
  64. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/runtime-identity.d.ts +7 -0
  65. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/runtime-identity.js +66 -0
  66. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/server.d.ts +21 -0
  67. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/server.js +308 -0
  68. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/share-page.d.ts +75 -0
  69. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/share-page.js +167 -0
  70. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/sharing.d.ts +35 -0
  71. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/sharing.js +67 -0
  72. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/tools.d.ts +9 -0
  73. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/tools.js +106 -0
  74. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/types.d.ts +166 -0
  75. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/types.js +3 -0
  76. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/version.d.ts +4 -0
  77. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/version.js +13 -0
  78. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/index.d.ts +76 -0
  79. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/index.js +366 -0
  80. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/license +9 -0
  81. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/package.json +44 -0
  82. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/readme.md +56 -0
  83. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/vendor/fastlist-0.3.0-x64.exe +0 -0
  84. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/vendor/fastlist-0.3.0-x86.exe +0 -0
  85. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/package.json +6 -0
  86. package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/runtime/node +0 -0
  87. package/dist/bootstrap/Forkit AI Footprint.app/Contents/_CodeSignature/CodeResources +931 -0
  88. package/dist/census.d.ts +3 -0
  89. package/dist/census.js +196 -0
  90. package/dist/cli.d.ts +32 -0
  91. package/dist/cli.js +404 -0
  92. package/dist/doctor.d.ts +14 -0
  93. package/dist/doctor.js +71 -0
  94. package/dist/endpoints.d.ts +8 -0
  95. package/dist/endpoints.js +45 -0
  96. package/dist/evaluate.d.ts +44 -0
  97. package/dist/evaluate.js +102 -0
  98. package/dist/filesystem.d.ts +11 -0
  99. package/dist/filesystem.js +226 -0
  100. package/dist/format.d.ts +7 -0
  101. package/dist/format.js +78 -0
  102. package/dist/hash.d.ts +4 -0
  103. package/dist/hash.js +16 -0
  104. package/dist/index.d.ts +22 -0
  105. package/dist/index.js +58 -0
  106. package/dist/insights.d.ts +13 -0
  107. package/dist/insights.js +76 -0
  108. package/dist/local-device.d.ts +19 -0
  109. package/dist/local-device.js +81 -0
  110. package/dist/locales.json +272 -0
  111. package/dist/localization.d.ts +277 -0
  112. package/dist/localization.js +55 -0
  113. package/dist/mcp.d.ts +9 -0
  114. package/dist/mcp.js +93 -0
  115. package/dist/monitor.d.ts +99 -0
  116. package/dist/monitor.js +285 -0
  117. package/dist/providers/base.d.ts +34 -0
  118. package/dist/providers/base.js +88 -0
  119. package/dist/providers/index.d.ts +6 -0
  120. package/dist/providers/index.js +24 -0
  121. package/dist/providers/lmstudio.d.ts +9 -0
  122. package/dist/providers/lmstudio.js +71 -0
  123. package/dist/providers/ollama.d.ts +12 -0
  124. package/dist/providers/ollama.js +171 -0
  125. package/dist/providers/openai-compatible.d.ts +10 -0
  126. package/dist/providers/openai-compatible.js +68 -0
  127. package/dist/resource-evidence.d.ts +17 -0
  128. package/dist/resource-evidence.js +52 -0
  129. package/dist/runtime-activity.d.ts +5 -0
  130. package/dist/runtime-activity.js +66 -0
  131. package/dist/runtime-identity.d.ts +7 -0
  132. package/dist/runtime-identity.js +66 -0
  133. package/dist/server.d.ts +21 -0
  134. package/dist/server.js +308 -0
  135. package/dist/share-page.d.ts +75 -0
  136. package/dist/share-page.js +167 -0
  137. package/dist/sharing.d.ts +35 -0
  138. package/dist/sharing.js +67 -0
  139. package/dist/tools.d.ts +9 -0
  140. package/dist/tools.js +106 -0
  141. package/dist/types.d.ts +166 -0
  142. package/dist/types.js +3 -0
  143. package/dist/version.d.ts +4 -0
  144. package/dist/version.js +13 -0
  145. package/docs/GLOBAL_DISTRIBUTION.md +79 -0
  146. package/docs/MACOS_ACCURACY_GATE.md +140 -0
  147. package/docs/MACOS_TESTER_GUIDE.md +88 -0
  148. package/examples/macos-truth.template.json +10 -0
  149. package/package.json +75 -0
  150. package/release/channels.json +41 -0
@@ -0,0 +1,88 @@
1
+ # Forkit AI Footprints macOS Field Test
2
+
3
+ This is a metadata-only Apple Silicon macOS field test. Forkit AI Footprints has
4
+ no uploader. Do not test it on a machine where
5
+ you are unable to review the local metadata it will inspect.
6
+
7
+ ## What the test reads
8
+
9
+ AI Footprints reads process metadata, known application/configuration-path existence,
10
+ supported model-file metadata, known MCP configuration entry counts, and
11
+ supported loopback runtime APIs. It does not read model bytes, retain raw
12
+ commands, emit full paths or MCP values, authenticate, or contact Forkit.dev.
13
+
14
+ ## Requirements
15
+
16
+ - a Mac you are authorized to inspect;
17
+ - Node.js 20, 22, or 24 and npm;
18
+ - the provided `forkit-census-0.2.0.tgz` test artifact;
19
+ - its SHA-256 checksum from the test coordinator.
20
+
21
+ Verify and install the artifact:
22
+
23
+ ```bash
24
+ shasum -a 256 ./forkit-census-0.2.0.tgz
25
+ npm install -g ./forkit-census-0.2.0.tgz
26
+ forkit-census doctor
27
+ ```
28
+
29
+ Stop if the checksum differs or `doctor` does not identify macOS.
30
+
31
+ ## Create independent truth
32
+
33
+ Copy `examples/macos-truth.template.json` outside the repository and fill it in
34
+ after manually checking the Mac. Do this before looking at the Census scan so
35
+ the tool does not define its own truth.
36
+
37
+ - `agent_signatures`: supported agent processes actually running now. Supported
38
+ values are `codex`, `claude`, `aider`, `openhands`, `goose`, `cursor`,
39
+ `windsurf`, `gemini-cli`, `opencode`, `openclaw`, `cline`, `roo-code`,
40
+ `mcp-server`, `langchain`, `langgraph`, `crewai`, `autogen`, `llamaindex`,
41
+ `agno`, `pydantic-ai`, and `smolagents`.
42
+ - `tool_names`: supported installed/configured products. Supported values are
43
+ `Claude Code`, `Codex`, `Cursor`, `Windsurf`, `Gemini CLI`, `GitHub Copilot`,
44
+ `OpenCode`, `OpenClaw`, `Jan`, `LM Studio`, and `Zed`.
45
+ - `online_runtime_names`: supported runtime APIs responding locally now:
46
+ `ollama`, `lmstudio`, or `openai-compatible`.
47
+ - `model_keys`: every expected supported model as `runtime:model-name`, using
48
+ the exact name shown by the runtime or local model manager.
49
+ - `mcp_clients`: supported clients with a non-empty known MCP configuration.
50
+ Use `Claude Code`, `Codex`, `Cursor`, `VS Code`, `VS Code Insiders`,
51
+ `Windsurf`, or `Zed`.
52
+
53
+ Use an empty array when nothing should be detected for a surface. Keep this
54
+ truth file private; it may contain model names.
55
+
56
+ ## Run and review
57
+
58
+ ```bash
59
+ forkit-census evaluate \
60
+ --truth /absolute/path/to/local-truth.json \
61
+ --output ./macos-evaluation.json
62
+ ```
63
+
64
+ The result contains only aggregate true-positive, false-positive, and
65
+ false-negative counts, plus macOS major version, CPU architecture, Node major,
66
+ and product version. It contains no truth item names and is not uploaded.
67
+
68
+ Open `macos-evaluation.json` before sharing it. Share only that evaluation file
69
+ if you separately consent. Never send the truth file, raw scan output, terminal
70
+ history, configuration files, or screenshots containing private names.
71
+
72
+ ## Coordinator aggregation
73
+
74
+ Place explicitly shared evaluation JSON files in one directory and run:
75
+
76
+ ```bash
77
+ forkit-census aggregate \
78
+ --results /absolute/path/to/macos-field-results \
79
+ --output ./macos-field-aggregate.json
80
+ ```
81
+
82
+ The aggregate includes coverage counts and Wilson 95% confidence intervals.
83
+ It deliberately keeps `field_accuracy_claim_allowed` false. A human review
84
+ against `docs/MACOS_ACCURACY_GATE.md` is required before any accuracy claim or
85
+ release decision. The coordinator must independently track one result per Mac;
86
+ the result format deliberately contains no persistent device identifier and
87
+ therefore cannot automatically detect repeated submissions from one machine.
88
+ Results from different Census versions are rejected rather than pooled.
@@ -0,0 +1,10 @@
1
+ {
2
+ "schema_version": "1.0",
3
+ "expected": {
4
+ "agent_signatures": [],
5
+ "tool_names": [],
6
+ "online_runtime_names": [],
7
+ "model_keys": [],
8
+ "mcp_clients": []
9
+ }
10
+ }
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "forkit-ai-footprints",
3
+ "version": "0.2.0",
4
+ "description": "Forkit AI Footprints: private local AI model, runtime, and agent inventory",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/arpitasarker01/forkit-census.git"
9
+ },
10
+ "homepage": "https://github.com/arpitasarker01/forkit-census#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/arpitasarker01/forkit-census/issues"
13
+ },
14
+ "main": "dist/index.js",
15
+ "types": "dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "require": "./dist/index.js",
20
+ "default": "./dist/index.js"
21
+ }
22
+ },
23
+ "engines": {
24
+ "node": "20.x || 22.x || 24.x"
25
+ },
26
+ "os": [
27
+ "darwin"
28
+ ],
29
+ "cpu": [
30
+ "arm64"
31
+ ],
32
+ "files": [
33
+ "dist",
34
+ "README.md",
35
+ "STATUS.md",
36
+ "PRIVACY.md",
37
+ "docs/MACOS_TESTER_GUIDE.md",
38
+ "docs/MACOS_ACCURACY_GATE.md",
39
+ "docs/GLOBAL_DISTRIBUTION.md",
40
+ "release/channels.json",
41
+ "examples/macos-truth.template.json",
42
+ "LICENSE"
43
+ ],
44
+ "scripts": {
45
+ "clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\"",
46
+ "build": "npm run clean && tsc -p tsconfig.json && node ./scripts/prepare-dist.mjs",
47
+ "dev": "tsc -w -p tsconfig.json",
48
+ "test": "npm run build && node ./scripts/run-tests.mjs && node ./scripts/benchmark-agents.mjs",
49
+ "benchmark:agents": "npm run build && node ./scripts/benchmark-agents.mjs",
50
+ "validate:macos": "npm run build && node ./scripts/validate-macos-device.mjs",
51
+ "validate:app-attest": "node ./scripts/validate-app-attest-helper.mjs",
52
+ "preflight:macos:release": "node ./scripts/preflight-macos-release.mjs",
53
+ "evaluate:macos": "npm run build && node ./scripts/evaluate-macos-field.mjs",
54
+ "prepack": "npm run build && node ./scripts/prune-dist.mjs && node ./scripts/prepare-macos-bootstrap.mjs",
55
+ "smoke:package": "node ./scripts/smoke-package.mjs",
56
+ "build:macos:installer": "npm run build && node ./scripts/prune-dist.mjs && COPYFILE_DISABLE=1 node ./scripts/build-macos-installer.mjs",
57
+ "release:check": "node ./scripts/verify-release-coherence.mjs",
58
+ "release:manifest": "node ./scripts/verify-release-coherence.mjs --write",
59
+ "prepublishOnly": "npm test && npm run validate:macos"
60
+ },
61
+ "bin": {
62
+ "forkit-ai-footprints": "dist/cli.js",
63
+ "forkit-census": "dist/cli.js"
64
+ },
65
+ "dependencies": {
66
+ "ps-list": "^9.0.0"
67
+ },
68
+ "devDependencies": {
69
+ "@types/node": "^20.0.0",
70
+ "typescript": "^5.0.0"
71
+ },
72
+ "publishConfig": {
73
+ "access": "public"
74
+ }
75
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "schema_version": "1.0",
3
+ "product": "forkit-ai-footprints",
4
+ "version_source": "package.json",
5
+ "repository": "arpitasarker01/forkit-census",
6
+ "support": {
7
+ "operating_system": "macOS",
8
+ "architecture": "Apple Silicon",
9
+ "field_accuracy_claim": false
10
+ },
11
+ "channels": {
12
+ "github_release": {
13
+ "role": "canonical immutable release",
14
+ "tag": "v{version}",
15
+ "manifest_asset": "forkit-ai-footprints-{version}-release.json",
16
+ "status": "available"
17
+ },
18
+ "npm": {
19
+ "role": "global developer installation",
20
+ "package": "forkit-ai-footprints",
21
+ "install": "npx --yes forkit-ai-footprints@{version}",
22
+ "status": "available"
23
+ },
24
+ "homebrew": {
25
+ "role": "global macOS package-manager installation",
26
+ "formula": "forkit-ai-footprints",
27
+ "install": "brew install arpitasarker01/ai-footprints/forkit-ai-footprints",
28
+ "status": "tap-not-created"
29
+ },
30
+ "macos_installer": {
31
+ "role": "future click installation",
32
+ "asset": "Forkit-AI-Footprints-{version}-macos-arm64.pkg",
33
+ "status": "blocked-on-developer-id-and-notarization"
34
+ },
35
+ "website": {
36
+ "role": "public recommendation surface",
37
+ "path": "/ai-footprint",
38
+ "status": "available"
39
+ }
40
+ }
41
+ }