@lumenflow/cli 5.4.0 → 5.7.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 +42 -40
- package/dist/db-journal-recover.js +400 -0
- package/dist/db-journal-recover.js.map +1 -0
- package/dist/docs-sync.js +8 -3
- package/dist/docs-sync.js.map +1 -1
- package/dist/gate-defaults.js +191 -9
- package/dist/gate-defaults.js.map +1 -1
- package/dist/gate-registry.js.map +1 -1
- package/dist/gates/monolithic-file-contention-guard.js +167 -0
- package/dist/gates/monolithic-file-contention-guard.js.map +1 -0
- package/dist/gates/prod-migration-drift.js +207 -0
- package/dist/gates/prod-migration-drift.js.map +1 -0
- package/dist/gates/test-over-deletion-guard.js +255 -0
- package/dist/gates/test-over-deletion-guard.js.map +1 -0
- package/dist/gates-runners.js +401 -2
- package/dist/gates-runners.js.map +1 -1
- package/dist/gates.js +349 -4
- package/dist/gates.js.map +1 -1
- package/dist/lumenflow-setup.js +144 -0
- package/dist/lumenflow-setup.js.map +1 -0
- package/dist/lumenflow-upgrade.js +2 -1
- package/dist/lumenflow-upgrade.js.map +1 -1
- package/dist/mem-create.js +10 -1
- package/dist/mem-create.js.map +1 -1
- package/dist/mem-signal.js +21 -4
- package/dist/mem-signal.js.map +1 -1
- package/dist/metrics-cli.js +19 -2
- package/dist/metrics-cli.js.map +1 -1
- package/dist/metrics-snapshot.js +25 -2
- package/dist/metrics-snapshot.js.map +1 -1
- package/dist/orchestrate-initiative.js +28 -3
- package/dist/orchestrate-initiative.js.map +1 -1
- package/dist/public-manifest.js +17 -0
- package/dist/public-manifest.js.map +1 -1
- package/dist/release.js +53 -18
- package/dist/release.js.map +1 -1
- package/dist/wu-done-gates.js +121 -8
- package/dist/wu-done-gates.js.map +1 -1
- package/dist/wu-done.js +30 -6
- package/dist/wu-done.js.map +1 -1
- package/dist/wu-edit-operations.js +74 -0
- package/dist/wu-edit-operations.js.map +1 -1
- package/dist/wu-edit-validators.js +58 -0
- package/dist/wu-edit-validators.js.map +1 -1
- package/dist/wu-edit.js +106 -4
- package/dist/wu-edit.js.map +1 -1
- package/dist/wu-prep.js +132 -8
- package/dist/wu-prep.js.map +1 -1
- package/dist/wu-recover.js +6 -0
- package/dist/wu-recover.js.map +1 -1
- package/dist/wu-release.js +120 -2
- package/dist/wu-release.js.map +1 -1
- package/dist/wu-sizing-validation.js +47 -17
- package/dist/wu-sizing-validation.js.map +1 -1
- package/dist/wu-status.js +33 -0
- package/dist/wu-status.js.map +1 -1
- package/package.json +13 -11
- package/packs/agent-runtime/package.json +1 -1
- package/packs/sidekick/package.json +1 -1
- package/packs/software-delivery/package.json +1 -1
- package/templates/core/AGENTS.md.template +162 -26
- package/templates/core/LUMENFLOW.md.template +381 -70
- package/templates/core/ai/onboarding/agent-invocation-guide.md.template +0 -5
- package/templates/core/ai/onboarding/agent-safety-card.md.template +63 -17
- package/templates/core/ai/onboarding/initiative-orchestration.md.template +4 -0
- package/templates/core/ai/onboarding/release-process.md.template +7 -7
- package/templates/core/ai/onboarding/vendor-support.md.template +74 -10
- package/templates/vendors/claude/.claude/skills/frontend-design/SKILL.md.template +1 -1
- package/templates/vendors/claude/.claude/skills/wu-lifecycle/SKILL.md.template +28 -0
- package/packs/agent-runtime/agent-heartbeat.ts +0 -163
- package/packs/agent-runtime/auto-session-integration.ts +0 -888
- package/packs/agent-runtime/capability-factory.ts +0 -104
- package/packs/agent-runtime/constants.ts +0 -21
- package/packs/agent-runtime/delegation-registry-schema.ts +0 -220
- package/packs/agent-runtime/delegation-registry-store.ts +0 -269
- package/packs/agent-runtime/delegation-tree.ts +0 -328
- package/packs/agent-runtime/index.ts +0 -20
- package/packs/agent-runtime/manifest.ts +0 -348
- package/packs/agent-runtime/memory-coordination-contract.ts +0 -86
- package/packs/agent-runtime/orchestration.ts +0 -2027
- package/packs/agent-runtime/pack-registration.ts +0 -110
- package/packs/agent-runtime/policy-factory.ts +0 -165
- package/packs/agent-runtime/remote-controls/index.ts +0 -7
- package/packs/agent-runtime/remote-controls/operations.ts +0 -405
- package/packs/agent-runtime/remote-controls/port.ts +0 -48
- package/packs/agent-runtime/remote-controls/state-store.ts +0 -258
- package/packs/agent-runtime/remote-controls/types.ts +0 -105
- package/packs/agent-runtime/session-schema.ts +0 -467
- package/packs/agent-runtime/tool-impl/agent-turn-tools.ts +0 -793
- package/packs/agent-runtime/tool-impl/index.ts +0 -6
- package/packs/agent-runtime/tool-impl/provider-adapters.ts +0 -1245
- package/packs/agent-runtime/tool-impl/remote-controls.mock.ts +0 -256
- package/packs/agent-runtime/tool-impl/remote-controls.ts +0 -273
- package/packs/agent-runtime/tools/index.ts +0 -4
- package/packs/agent-runtime/tools/types.ts +0 -47
- package/packs/agent-runtime/turn-lifecycle-events.ts +0 -590
- package/packs/agent-runtime/types.ts +0 -128
- package/packs/agent-runtime/vitest.config.ts +0 -11
- package/packs/sidekick/channel-ingress.ts +0 -137
- package/packs/sidekick/constants.ts +0 -10
- package/packs/sidekick/index.ts +0 -8
- package/packs/sidekick/manifest-schema.ts +0 -49
- package/packs/sidekick/manifest.ts +0 -512
- package/packs/sidekick/pack-registration.ts +0 -110
- package/packs/sidekick/policy-factory.ts +0 -38
- package/packs/sidekick/sidekick-events.ts +0 -694
- package/packs/sidekick/src/adapters/cloud-queue.ts +0 -101
- package/packs/sidekick/src/adapters/control-plane-bridge.adapter.ts +0 -386
- package/packs/sidekick/src/adapters/filesystem-bridge.adapter.ts +0 -228
- package/packs/sidekick/src/domain/channel.types.ts +0 -64
- package/packs/sidekick/src/ports/channel-bridge.port.ts +0 -92
- package/packs/sidekick/src/routines/commit.ts +0 -74
- package/packs/sidekick/tool-impl/channel-tools.ts +0 -577
- package/packs/sidekick/tool-impl/channel-transports.ts +0 -75
- package/packs/sidekick/tool-impl/index.ts +0 -29
- package/packs/sidekick/tool-impl/memory-tools.ts +0 -290
- package/packs/sidekick/tool-impl/routine-commit.ts +0 -102
- package/packs/sidekick/tool-impl/routine-tools.ts +0 -440
- package/packs/sidekick/tool-impl/runtime-context.ts +0 -28
- package/packs/sidekick/tool-impl/shared.ts +0 -125
- package/packs/sidekick/tool-impl/storage.ts +0 -325
- package/packs/sidekick/tool-impl/system-tools.ts +0 -160
- package/packs/sidekick/tool-impl/task-tools.ts +0 -506
- package/packs/sidekick/tools/channel-tools.ts +0 -53
- package/packs/sidekick/tools/index.ts +0 -9
- package/packs/sidekick/tools/memory-tools.ts +0 -53
- package/packs/sidekick/tools/routine-tools.ts +0 -53
- package/packs/sidekick/tools/system-tools.ts +0 -47
- package/packs/sidekick/tools/task-tools.ts +0 -61
- package/packs/sidekick/tools/types.ts +0 -57
- package/packs/sidekick/vitest.config.ts +0 -11
- package/packs/software-delivery/constants.ts +0 -10
- package/packs/software-delivery/extensions.ts +0 -140
- package/packs/software-delivery/gate-policies.ts +0 -134
- package/packs/software-delivery/index.ts +0 -8
- package/packs/software-delivery/manifest-schema.ts +0 -268
- package/packs/software-delivery/manifest.ts +0 -657
- package/packs/software-delivery/pack-registration.ts +0 -113
- package/packs/software-delivery/src/commands/index.ts +0 -5
- package/packs/software-delivery/src/config/delivery-review-contract.ts +0 -256
- package/packs/software-delivery/src/config/env-accessors.ts +0 -66
- package/packs/software-delivery/src/config/index.ts +0 -8
- package/packs/software-delivery/src/config/normalize-config-keys.ts +0 -9
- package/packs/software-delivery/src/config/schemas/lumenflow-config-schema-types.ts +0 -460
- package/packs/software-delivery/src/config/workspace-reader.ts +0 -375
- package/packs/software-delivery/src/constants/backlog-patterns.ts +0 -31
- package/packs/software-delivery/src/constants/client-ids.ts +0 -19
- package/packs/software-delivery/src/constants/config-contract.ts +0 -7
- package/packs/software-delivery/src/constants/docs-layout-presets.ts +0 -50
- package/packs/software-delivery/src/constants/duration-constants.ts +0 -20
- package/packs/software-delivery/src/constants/gate-constants.ts +0 -32
- package/packs/software-delivery/src/constants/index.ts +0 -29
- package/packs/software-delivery/src/constants/lock-constants.ts +0 -35
- package/packs/software-delivery/src/constants/object-guards.ts +0 -12
- package/packs/software-delivery/src/constants/section-headings.ts +0 -107
- package/packs/software-delivery/src/constants/wu-cli-constants.ts +0 -488
- package/packs/software-delivery/src/constants/wu-domain-constants.ts +0 -466
- package/packs/software-delivery/src/constants/wu-git-constants.ts +0 -7
- package/packs/software-delivery/src/constants/wu-id-format.ts +0 -327
- package/packs/software-delivery/src/constants/wu-paths-constants.ts +0 -384
- package/packs/software-delivery/src/constants/wu-statuses.ts +0 -287
- package/packs/software-delivery/src/constants/wu-type-helpers.ts +0 -67
- package/packs/software-delivery/src/constants/wu-ui-constants.ts +0 -267
- package/packs/software-delivery/src/constants/wu-validation-constants.ts +0 -73
- package/packs/software-delivery/src/domain/index.ts +0 -5
- package/packs/software-delivery/src/domain/orchestration.constants.ts +0 -166
- package/packs/software-delivery/src/domain/orchestration.schemas.ts +0 -238
- package/packs/software-delivery/src/domain/orchestration.types.ts +0 -176
- package/packs/software-delivery/src/methodology/incremental-test.ts +0 -122
- package/packs/software-delivery/src/methodology/index.ts +0 -6
- package/packs/software-delivery/src/methodology/manual-test-validator.ts +0 -292
- package/packs/software-delivery/src/policy/coverage-gate.ts +0 -270
- package/packs/software-delivery/src/policy/gates-agent-mode.ts +0 -223
- package/packs/software-delivery/src/policy/gates-config-internal.ts +0 -121
- package/packs/software-delivery/src/policy/gates-config.ts +0 -300
- package/packs/software-delivery/src/policy/gates-coverage.ts +0 -356
- package/packs/software-delivery/src/policy/gates-presets.ts +0 -134
- package/packs/software-delivery/src/policy/gates-schemas.ts +0 -173
- package/packs/software-delivery/src/policy/index.ts +0 -22
- package/packs/software-delivery/src/policy/package-manager-resolver.ts +0 -319
- package/packs/software-delivery/src/policy/resolve-policy.ts +0 -601
- package/packs/software-delivery/src/ports/config.ports.ts +0 -90
- package/packs/software-delivery/src/ports/dashboard-renderer.port.ts +0 -125
- package/packs/software-delivery/src/ports/index.ts +0 -10
- package/packs/software-delivery/src/ports/sync-validator.ports.ts +0 -59
- package/packs/software-delivery/src/ports/wu-helpers.ports.ts +0 -168
- package/packs/software-delivery/src/ports/wu-state.ports.ts +0 -241
- package/packs/software-delivery/src/primitives/index.ts +0 -5
- package/packs/software-delivery/src/runtime/index.ts +0 -6
- package/packs/software-delivery/src/runtime/work-classifier.ts +0 -561
- package/packs/software-delivery/src/sandbox/index.ts +0 -10
- package/packs/software-delivery/src/sandbox/sandbox-allowlist.ts +0 -118
- package/packs/software-delivery/src/sandbox/sandbox-backend-linux.ts +0 -88
- package/packs/software-delivery/src/sandbox/sandbox-backend-macos.ts +0 -154
- package/packs/software-delivery/src/sandbox/sandbox-backend-windows.ts +0 -47
- package/packs/software-delivery/src/sandbox/sandbox-profile.ts +0 -153
- package/packs/software-delivery/src/schemas/index.ts +0 -5
- package/packs/software-delivery/src/state/date-utils.ts +0 -158
- package/packs/software-delivery/src/state/index.ts +0 -15
- package/packs/software-delivery/src/state/state-machine.ts +0 -119
- package/packs/software-delivery/src/state/wu-doc-types.ts +0 -51
- package/packs/software-delivery/src/state/wu-paths.ts +0 -381
- package/packs/software-delivery/src/state/wu-schema.ts +0 -1139
- package/packs/software-delivery/src/state/wu-state-schema.ts +0 -255
- package/packs/software-delivery/src/state/wu-yaml.ts +0 -338
- package/packs/software-delivery/tool-impl/agent-tools.ts +0 -263
- package/packs/software-delivery/tool-impl/delegation-tools.ts +0 -66
- package/packs/software-delivery/tool-impl/flow-metrics-tools.ts +0 -219
- package/packs/software-delivery/tool-impl/git-runner.ts +0 -113
- package/packs/software-delivery/tool-impl/git-tools.ts +0 -316
- package/packs/software-delivery/tool-impl/index.ts +0 -15
- package/packs/software-delivery/tool-impl/initiative-orchestration-tools.ts +0 -720
- package/packs/software-delivery/tool-impl/lane-lock.ts +0 -246
- package/packs/software-delivery/tool-impl/memory-tools.ts +0 -470
- package/packs/software-delivery/tool-impl/pending-runtime-tools.ts +0 -21
- package/packs/software-delivery/tool-impl/runtime-cli-adapter.ts +0 -329
- package/packs/software-delivery/tool-impl/runtime-native-tools.ts +0 -687
- package/packs/software-delivery/tool-impl/worker-loader.ts +0 -52
- package/packs/software-delivery/tool-impl/worktree-tools.ts +0 -46
- package/packs/software-delivery/tool-impl/wu-lifecycle-tools.ts +0 -807
- package/packs/software-delivery/tools/delegation-tools.ts +0 -23
- package/packs/software-delivery/tools/git-tools.ts +0 -55
- package/packs/software-delivery/tools/index.ts +0 -8
- package/packs/software-delivery/tools/lane-lock-tool.ts +0 -37
- package/packs/software-delivery/tools/types.ts +0 -71
- package/packs/software-delivery/tools/worktree-tools.ts +0 -49
- package/packs/software-delivery/vitest.config.ts +0 -11
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from 'vitest/config';
|
|
2
|
-
|
|
3
|
-
export default defineConfig({
|
|
4
|
-
test: {
|
|
5
|
-
globals: true,
|
|
6
|
-
environment: 'node',
|
|
7
|
-
include: ['__tests__/**/*.test.ts', '**/*.spec.ts'],
|
|
8
|
-
exclude: ['**/node_modules/**', '**/dist/**'],
|
|
9
|
-
passWithNoTests: false,
|
|
10
|
-
},
|
|
11
|
-
});
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
-
// SPDX-License-Identifier: LicenseRef-LumenFlow-Proprietary
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* WU-2731 (INIT-060 phase 3, ADR-013 §5 Identity):
|
|
6
|
-
* Pure inbound-channel ingress sanitizer.
|
|
7
|
-
*
|
|
8
|
-
* ADR-013 §5 rules, enforced here:
|
|
9
|
-
*
|
|
10
|
-
* - The authoritative `from` value for an inbound phone POST comes from the
|
|
11
|
-
* authenticated token subject (`{workspace_id}:phone:{device_id}`). Cloud
|
|
12
|
-
* MUST NOT trust a `from` field supplied in the request body.
|
|
13
|
-
*
|
|
14
|
-
* - Body-supplied `from` (and any alias under `metadata.from`) is stripped
|
|
15
|
-
* before the envelope reaches domain code. The surface that calls this
|
|
16
|
-
* module is expected to pass the resolved `from` separately; attempting to
|
|
17
|
-
* ingest a body-only envelope (no authoritative from) fails closed.
|
|
18
|
-
*
|
|
19
|
-
* The module is HTTP-independent: both the kernel tool-api surface and the
|
|
20
|
-
* future control-plane adapter (WU-2737) call the same sanitizer so the
|
|
21
|
-
* ignore-body-from rule is enforced in one place.
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
const ENVELOPE_BODY_FIELD_FROM = 'from' as const;
|
|
25
|
-
const ENVELOPE_METADATA_KEY = 'metadata' as const;
|
|
26
|
-
const ENVELOPE_FROM_SOURCE_TOKEN = 'token' as const;
|
|
27
|
-
|
|
28
|
-
export interface PhoneChannelIngressInput {
|
|
29
|
-
/**
|
|
30
|
-
* Raw request body as parsed from JSON. Opaque record; the sanitizer does
|
|
31
|
-
* not inspect `body`, only the `from` attribution fields.
|
|
32
|
-
*/
|
|
33
|
-
body: Readonly<Record<string, unknown>>;
|
|
34
|
-
/**
|
|
35
|
-
* Authoritative identity claim resolved from the bearer token. Required:
|
|
36
|
-
* without a token subject, cloud cannot attribute the message, and the
|
|
37
|
-
* ingress path rejects the request.
|
|
38
|
-
*/
|
|
39
|
-
authoritativeFrom: string;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface PhoneChannelIngressEnvelope {
|
|
43
|
-
/**
|
|
44
|
-
* Sanitised request body with any body-level `from` stripped. Everything
|
|
45
|
-
* else the caller supplied is preserved so downstream code (channel.send,
|
|
46
|
-
* routing) can consume arbitrary payload fields.
|
|
47
|
-
*/
|
|
48
|
-
body: Record<string, unknown>;
|
|
49
|
-
/** Authoritative attribution string (`{workspace_id}:phone:{device_id}`). */
|
|
50
|
-
from: string;
|
|
51
|
-
/** Always `'token'` — cloud-safe invariant per ADR-013 §5. */
|
|
52
|
-
from_source: typeof ENVELOPE_FROM_SOURCE_TOKEN;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export class PhoneChannelIngressError extends Error {
|
|
56
|
-
readonly statusCode: number;
|
|
57
|
-
|
|
58
|
-
constructor(message: string, statusCode: number) {
|
|
59
|
-
super(message);
|
|
60
|
-
this.name = 'PhoneChannelIngressError';
|
|
61
|
-
this.statusCode = statusCode;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Sanitize an inbound phone-channel request. Returns a cleaned envelope with
|
|
67
|
-
* the authoritative `from` baked in. Throws `PhoneChannelIngressError` (HTTP
|
|
68
|
-
* 400) when the authoritative `from` is missing — the surface translates the
|
|
69
|
-
* error to a 400/403 response.
|
|
70
|
-
*/
|
|
71
|
-
export function sanitizePhoneChannelIngress(
|
|
72
|
-
input: PhoneChannelIngressInput,
|
|
73
|
-
): PhoneChannelIngressEnvelope {
|
|
74
|
-
if (typeof input.authoritativeFrom !== 'string' || input.authoritativeFrom.length === 0) {
|
|
75
|
-
throw new PhoneChannelIngressError(
|
|
76
|
-
'Inbound phone channel requires authoritative from (token subject); body-only attribution is rejected.',
|
|
77
|
-
400,
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
const sanitizedBody = stripKey(input.body, ENVELOPE_BODY_FIELD_FROM);
|
|
82
|
-
const rawMetadata = sanitizedBody[ENVELOPE_METADATA_KEY];
|
|
83
|
-
if (
|
|
84
|
-
rawMetadata !== null &&
|
|
85
|
-
typeof rawMetadata === 'object' &&
|
|
86
|
-
!Array.isArray(rawMetadata) &&
|
|
87
|
-
ENVELOPE_BODY_FIELD_FROM in (rawMetadata as Record<string, unknown>)
|
|
88
|
-
) {
|
|
89
|
-
sanitizedBody[ENVELOPE_METADATA_KEY] = stripKey(
|
|
90
|
-
rawMetadata as Record<string, unknown>,
|
|
91
|
-
ENVELOPE_BODY_FIELD_FROM,
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return {
|
|
96
|
-
body: sanitizedBody,
|
|
97
|
-
from: input.authoritativeFrom,
|
|
98
|
-
from_source: ENVELOPE_FROM_SOURCE_TOKEN,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Copy `record` omitting the given key. Implemented with a filtered
|
|
104
|
-
* `Object.entries` rather than `delete` to satisfy the linter's ban on
|
|
105
|
-
* dynamic-delete (which would otherwise be a no-op for literal keys but
|
|
106
|
-
* fails the rule uniformly).
|
|
107
|
-
*/
|
|
108
|
-
function stripKey(record: Readonly<Record<string, unknown>>, key: string): Record<string, unknown> {
|
|
109
|
-
const result: Record<string, unknown> = {};
|
|
110
|
-
for (const [entryKey, entryValue] of Object.entries(record)) {
|
|
111
|
-
if (entryKey !== key) {
|
|
112
|
-
result[entryKey] = entryValue;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return result;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Convenience: reports whether the given `from` subject matches the
|
|
120
|
-
* phone-device grammar (`{workspace_id}:phone:{device_id}`). Useful to
|
|
121
|
-
* tell workspace-scoped actors from phone-device actors in the audit log
|
|
122
|
-
* without reaching for the enrollment parser.
|
|
123
|
-
*/
|
|
124
|
-
export function isPhoneSubject(subject: string): boolean {
|
|
125
|
-
const parts = subject.split(':');
|
|
126
|
-
if (parts.length !== 3) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
const [workspace, kind, device] = parts;
|
|
130
|
-
return (
|
|
131
|
-
kind === 'phone' &&
|
|
132
|
-
typeof workspace === 'string' &&
|
|
133
|
-
workspace.length > 0 &&
|
|
134
|
-
typeof device === 'string' &&
|
|
135
|
-
device.length > 0
|
|
136
|
-
);
|
|
137
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
-
// SPDX-License-Identifier: LicenseRef-LumenFlow-Proprietary
|
|
3
|
-
|
|
4
|
-
export const SIDEKICK_PACK_ID = 'sidekick' as const;
|
|
5
|
-
export const SIDEKICK_PACK_VERSION = '0.1.0' as const;
|
|
6
|
-
export const SIDEKICK_DOMAIN = SIDEKICK_PACK_ID;
|
|
7
|
-
export const SIDEKICK_POLICY_ID_PREFIX = `${SIDEKICK_PACK_ID}.policy` as const;
|
|
8
|
-
export const SIDEKICK_MANIFEST_FILE_NAME = 'manifest.yaml' as const;
|
|
9
|
-
export const SHA256_ALGORITHM = 'sha256' as const;
|
|
10
|
-
export const UTF8_ENCODING = 'utf8' as const;
|
package/packs/sidekick/index.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
-
// SPDX-License-Identifier: LicenseRef-LumenFlow-Proprietary
|
|
3
|
-
|
|
4
|
-
export * from './constants.js';
|
|
5
|
-
export * from './manifest.js';
|
|
6
|
-
export * from './manifest-schema.js';
|
|
7
|
-
export * from './pack-registration.js';
|
|
8
|
-
export * from './tools/types.js';
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2026 Hellmai Ltd
|
|
2
|
-
// SPDX-License-Identifier: LicenseRef-LumenFlow-Proprietary
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
DomainPackManifestSchema,
|
|
6
|
-
POLICY_TRIGGERS,
|
|
7
|
-
type DomainPackManifest,
|
|
8
|
-
type DomainPackTool,
|
|
9
|
-
} from '@lumenflow/kernel';
|
|
10
|
-
import type { PathScope, ToolPermission } from './tools/types.js';
|
|
11
|
-
|
|
12
|
-
interface Parser<T> {
|
|
13
|
-
parse(input: unknown): T;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export const MANIFEST_POLICY_TRIGGERS = POLICY_TRIGGERS;
|
|
17
|
-
|
|
18
|
-
export type ManifestPolicyTrigger =
|
|
19
|
-
(typeof MANIFEST_POLICY_TRIGGERS)[keyof typeof MANIFEST_POLICY_TRIGGERS];
|
|
20
|
-
|
|
21
|
-
export const MANIFEST_POLICY_DECISIONS = {
|
|
22
|
-
ALLOW: 'allow',
|
|
23
|
-
DENY: 'deny',
|
|
24
|
-
APPROVAL_REQUIRED: 'approval_required',
|
|
25
|
-
} as const;
|
|
26
|
-
|
|
27
|
-
export type ManifestPolicyDecision =
|
|
28
|
-
(typeof MANIFEST_POLICY_DECISIONS)[keyof typeof MANIFEST_POLICY_DECISIONS];
|
|
29
|
-
|
|
30
|
-
export interface SidekickManifestTool extends Omit<
|
|
31
|
-
DomainPackTool,
|
|
32
|
-
'permission' | 'required_scopes'
|
|
33
|
-
> {
|
|
34
|
-
permission: ToolPermission;
|
|
35
|
-
required_scopes: PathScope[];
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export type SidekickManifestPolicy = DomainPackManifest['policies'][number];
|
|
39
|
-
|
|
40
|
-
export interface SidekickPackManifest extends Omit<DomainPackManifest, 'tools' | 'policies'> {
|
|
41
|
-
tools: SidekickManifestTool[];
|
|
42
|
-
policies: SidekickManifestPolicy[];
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export const SidekickManifestSchema: Parser<SidekickPackManifest> = {
|
|
46
|
-
parse(input: unknown): SidekickPackManifest {
|
|
47
|
-
return DomainPackManifestSchema.parse(input) as SidekickPackManifest;
|
|
48
|
-
},
|
|
49
|
-
};
|